设计原则 Archive

  • 前言 内存资源由操作系统管理,分配与回收操作可能会执行系统调用(以 malloc 算法为例,较大的内存空间分配接口是 mmap, 而较小的空间 free 之后并不归还给操作系统 ),频繁的系统调用必然会降低系统性能,但是可以最大限度的把使用完毕的内存让给其它进程使用,相反长时间占有内存资源可以减少系统调用次数,但是内存资源不足会导致操作系统频繁换页,降低服务器的整体性能。 数据库是使用内存的“大户”,合理的内存分配机制就尤为重要,7月月报介绍了 PostgreSQL 的内存上下文,本文将介绍在 MySQL 中又是怎么管理内存的。 基础接口封装 MySQL 在基本的内存操作接口上面封装了一层,增 […]

    MySQL内存分配机制

    前言 内存资源由操作系统管理,分配与回收操作可能会执行系统调用(以 malloc 算法为例,较大的内存空间分配接口是 mmap, 而较小的空间 free 之后并不归还给操作系统 ),频繁的系统调用必然会降低系统性能,但是可以最大限度的把使用完毕的内存让给其它进程使用,相反长时间占有内存资源可以减少系统调用次数,但是内存资源不足会导致操作系统频繁换页,降低服务器的整体性能。 数据库是使用内存的“大户”,合理的内存分配机制就尤为重要,7月月报介绍了 PostgreSQL 的内存上下文,本文将介绍在 MySQL 中又是怎么管理内存的。 基础接口封装 MySQL 在基本的内存操作接口上面封装了一层,增 […]

    Continue Reading...

  • Single Responsibility Principle There should never be more than one reason for a class to change 一个类只负责一个功能领域中的相应职责。或者说:就一个类而言,只有一个引起它变化的原因。   设计模式之禅中的例子: 假设有一个接口实现打电话的功能: 书中分析Iphone接口不是单一职责的,连接是一个职责,涉及连接协议的管理,聊天的时候又是一个职责,涉及信号的传输与解析。因此将接口拆开,实现类也拆开,然后组合在一起,变成了这样: 这样连接之后,给一个连接完成的句柄就可以随便聊了。因为Phone […]

    单一职责原则

    Single Responsibility Principle There should never be more than one reason for a class to change 一个类只负责一个功能领域中的相应职责。或者说:就一个类而言,只有一个引起它变化的原因。   设计模式之禅中的例子: 假设有一个接口实现打电话的功能: 书中分析Iphone接口不是单一职责的,连接是一个职责,涉及连接协议的管理,聊天的时候又是一个职责,涉及信号的传输与解析。因此将接口拆开,实现类也拆开,然后组合在一起,变成了这样: 这样连接之后,给一个连接完成的句柄就可以随便聊了。因为Phone […]

    Continue Reading...