首页
精选文章架构查看全文架构最早来自建筑学理论,代表建筑的基础框架。建筑的基础框架决定了建筑的内部构造,外观,是建筑最基础的部分,建筑的架构一般由组件以及连接件构成。例如著名的科隆大教堂是典型的哥特式建筑,后来被软件行业引入,用来解决软件研发过程中的问题。针对不同的分层以及不同的域,都有不同的架构理论,关注不同的维度。 针对软件不同的生命周期,架构有工程架构,模块架构,代码架构,测试架构,部署架构等,更宏观的还有企业架构。 工程架构中又会有纵向架构和横向架构,纵向架构包括模块切分,例如领域驱动架构为微服务的拆分提供了方法论。横向的分层架构有MVC架构,接入层/逻辑层/存储层架构等。 软件大的分层架构可以分为CS架构,web架构两类,CS架构是指Client-Server,在传统的桌面应用程序比较流行,目前的移动端APP也可以称为client,web架构是指不需要安装程序,通过浏览器来实现软件界面的方式。 无论是CS架构,还是web架构,都有server端,server端内部也有不同的分层,最为有代表性是MVC架构。 MVC MVC架构将server端分为view层,controller层,model层,view层一般指视图层,视图包括用户界面以及直接面向client,web提供的http接口。 view view层一般有如下特点: view层直接面向终端用户,所以需要聚合的数据量较大,一般会提供较粗粒度的接口,可复用的程度较低。 view层通过查询模型获取数据,然后返回给前端。 model model层用于存储,修改,查询数据 controller controller层是用于请求的入口,主要作用是把指令传递给model层进行数据的变更…执行计划【Mysql】查看全文MySQL的执行计划是数据库管理系统(DBMS)根据SQL查询生成的一种优化策略,用于高效地检索数据。当你执行一个SQL查询时,MySQL会先分析这个查询,然后根据表结构、索引和统计信息等因素生成一个执行计划。执行计划会为查询提供访问数据的最优方式。了解执行计划可以帮助我们分析和优化查询性能。MySQL的执行计划包括以下信息: id:查询的标识符,用于区分查询中的不同部分。 select_type:查询类型,如SIMPLE(简单查询)、PRIMARY(主查询)、SUBQUERY(子查询)等。 table:查询涉及的表名。 partitions:查询涉及的分区。 type:表示访问数据的方式,如全表扫描(ALL)、索引扫描(index)、范围扫描(range)等。这个值越好,性能通常越高。 possible_keys:可能使用的索引。垃圾回收【Golang】查看全文垃圾回收是 Garbage Collection 的意思,通常简称为GC,是一种自动内存管理的机制。当程序向操作系统申请的内存不再被需要时,因为不确定内存不再需要的时机,所以内存手动释放的开发量较大,而且极易出错,垃圾回收主动将不需要的内容空间回收并供其他代码进行内存申请时候复用,或者将其归还给操作系统,这种针对内存级别资源的自动回收过程,即为垃圾回收。负责垃圾回收的程序组件,即为垃圾回收器。 垃圾回收在现代语言中的使用非常广泛,例如Python,Java等语言都有垃圾回收器。 垃圾回收算法需要关注几个部分: 从堆内存标记把垃圾也就是没有再被引用的内存标记出来 对内存标记出来的垃圾进行清理,从而释放内存 垃圾回收的策略,包括执行的时机,清理的比例等。 标记算法 并行标记的一般采用三色标记的方式进行标记,三色标记是指在标记过程中将对象分为白色,黑色,灰色三种。 三色标记的过程如下: 初始阶段所有的对象都是白色。 初始标记完成之后将GC Roots直接关联的对象置为灰色。 遍历灰色对象的所有引用,当所有引用被标记完成之后,灰色对象置为黑色,该对象引用的对象置为黑色,重复该过程,直到所有的对象都变成黑色。 当标记过程结束,白色对象可以被回收。 三色标记算法有三类问题,多标问题,漏标问题,以及新对象的问题。 多标问题是指在垃圾回收过程中该对象是扫描到被引用的,但是过程中断开了所有的引用,此时该对象已经是事实的垃圾,但是被标记为黑色,也就是多标问题。 多标问题关联的对象一般称为浮动垃圾,其不影响垃圾回收的正确性,可以在下次垃圾回收的时候进行清理。 漏标问题是指在垃圾回收过程中,该对象被灰色对象引用,但是过程中灰色对象到该对象的引用断开… |
热门分类开源Golang消息队列JavaJavascriptLinuxMysqlNLPPHP事务内存管理分布式理论分类存储常用存储开源软件操作系统画图网络编程数据库算法虚拟化前端存储理论常用算法微服务数据结构算法应用计算机原理中间件共识算法分布式分治动态规划容器并发排序架构组件绘图工具网络协议编程语言理论算法思想树缓存架构C++字符串算法工程思想搜索
算法题库精选内容 |