面向对象 Archive

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

    MySQL内存分配机制

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

    Continue Reading...

  • 本文首先大体讲一个内存上下文是干什么的,结构是怎么样的。然后具体介绍PG中现有的一套分配策略,并不详细分析源码的每一处(可以参考PG内核分析这本书),而是说说其中思路流程,如何调节参数进行优化。最后介绍如何使用C++重写其中的源码,让内存上下文不仅仅是PG中的一个特性,而是可以作为一个内存分配的库,供其它程序使用。并附上重写后的源码供大家参考。 大体概述 PostgreSQL 从7.1开始支持内存上下文,因为数据库在查询过程中需要不断申请内存空间,但是只有当查询结束后才能够释放内存,这执行之间,就有可能发生内存泄漏问题。内存对于数据库而言极其重要,为了避免内存泄漏,引入了内存上下文机制,所有的 […]

    PG 内存上下文

    本文首先大体讲一个内存上下文是干什么的,结构是怎么样的。然后具体介绍PG中现有的一套分配策略,并不详细分析源码的每一处(可以参考PG内核分析这本书),而是说说其中思路流程,如何调节参数进行优化。最后介绍如何使用C++重写其中的源码,让内存上下文不仅仅是PG中的一个特性,而是可以作为一个内存分配的库,供其它程序使用。并附上重写后的源码供大家参考。 大体概述 PostgreSQL 从7.1开始支持内存上下文,因为数据库在查询过程中需要不断申请内存空间,但是只有当查询结束后才能够释放内存,这执行之间,就有可能发生内存泄漏问题。内存对于数据库而言极其重要,为了避免内存泄漏,引入了内存上下文机制,所有的 […]

    Continue Reading...

  • 这一段时间写博客的频率少了很多,一直在给实验室数据库写备份和恢复的功能,积攒了很多值得深入学习的点,之后会一一总结。这篇文章是选的课需要交一篇分析语言特性如何实现的结题报告,正好看完Inside the c++ object model 之后,就一直想总结一下c++是怎么实现面向对象的继承,多态等等特性的。这是上篇,主要分析类中的数据成员,也是主要部分,下篇介绍虚函数的实现情况。 c++ 与面向对象 传统的c语言是结构化程序设计语言的代表,由c语言完成的操作系统,数据库等大型软件如今仍然良好的运行在我们的电脑上。C语言效率高,更加接近底层,程序员在编程中可以掌握每一块内存,如何分配何时回收。c […]

    C++面向对象特性实现剖析 Data Member篇

    这一段时间写博客的频率少了很多,一直在给实验室数据库写备份和恢复的功能,积攒了很多值得深入学习的点,之后会一一总结。这篇文章是选的课需要交一篇分析语言特性如何实现的结题报告,正好看完Inside the c++ object model 之后,就一直想总结一下c++是怎么实现面向对象的继承,多态等等特性的。这是上篇,主要分析类中的数据成员,也是主要部分,下篇介绍虚函数的实现情况。 c++ 与面向对象 传统的c语言是结构化程序设计语言的代表,由c语言完成的操作系统,数据库等大型软件如今仍然良好的运行在我们的电脑上。C语言效率高,更加接近底层,程序员在编程中可以掌握每一块内存,如何分配何时回收。c […]

    Continue Reading...

  • 这半个月作业爆表,很多作业无甚意思,不做不行,做了浪费时间。于是尽量将作业写的有点内容,不至于应付差事,也不至于浪费时间。本文就是作业之一,要求写程序对比面向对象语言在增加了面向对象的特性之后,在时间上和空间上有什么变化。正好借此整理Inside the C++ object  model中的一些内容。 前言: 面向对象设计思想对于软件工程的意义非同一般,从结构化程序设计到面向对象,使得大型软件设计,开发,解耦,维护等等变得更加可操作。从语言层面上来讲,面向对象的设计方法仅仅是一个指导思想,并不一定要求拥有面向对象特性的语言才能实现。我想纯c的代码,也完全能够写出c++面向对象的效果。就是需要 […]

    面向对象之后增加的开销

    这半个月作业爆表,很多作业无甚意思,不做不行,做了浪费时间。于是尽量将作业写的有点内容,不至于应付差事,也不至于浪费时间。本文就是作业之一,要求写程序对比面向对象语言在增加了面向对象的特性之后,在时间上和空间上有什么变化。正好借此整理Inside the C++ object  model中的一些内容。 前言: 面向对象设计思想对于软件工程的意义非同一般,从结构化程序设计到面向对象,使得大型软件设计,开发,解耦,维护等等变得更加可操作。从语言层面上来讲,面向对象的设计方法仅仅是一个指导思想,并不一定要求拥有面向对象特性的语言才能实现。我想纯c的代码,也完全能够写出c++面向对象的效果。就是需要 […]

    Continue Reading...