- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 浅谈内存池几种设计方式
写服务器的,通常会涉及到内存池的东西,自己在这方面也看了写了一些东西,有些体会,写出来跟大家分享下。 内存池基本包含以下几个东西,第一,初始化。第二,分配内存。第三,回收内存。所谓初始化,就是在服务器启动的时候,或者第一次需要内存的时候,系统分配很大的一块内存,方便之后的使用。分配内存,就是从内存池中取出需要的内存给外部使用,当然这里需要考虑的是当内存池中没有内存可分配时候的处理。回
2012-07-19 11:50:43 509
原创 Linux下的静态库和动态库
1.制作自己的动态库和静态库linux下动态库以.so结尾,静态库以.a结尾,它们都以lib开头,比如一个库名为net,那么它的全名应该是libnet.so或者libnet.a。我们有两个文件,hello.c和test.c,下面是两个文件的内容//hello.c#include void my_lib_func(){printf("Libraryroutine ca
2012-07-11 15:20:02 446
原创 mysql直接执行和预处理执行的效率比较
最近闲来无事,想看看mysql预处理执行效率和直接执行的效率差别有多大。先去网上查了查,两种声音都有,没办法,只好自己来验证验证。我打算测试插入的效率,下来建一个表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `col1` varchar(64) NOT NULL DEFAULT '',
2012-01-29 16:33:55 2170
原创 浅谈二进制文件读写和文本文件读写的区别
昨天在看一篇文章的时候,突然想起了这个基础性的问题,自己一直对它的区别不是很清楚,于是今天上午研究下了,分享下自己的理解。(对它很清楚的同学们可以略过此篇文章) 从存储方式来说,文件在磁盘上的存储方式都是二进制形式,所以,文本文件其实也应该算二进制文件。那么他们的区别呢,各自的优缺点呢?不急,我慢慢道来。 先从他们的区别来说,虽然都是二进制文件,但是二进制代表的意思不一
2012-01-29 12:47:54 1850
转载 makefile的通用写法
<br />当写的源代码多了,工程多了,如果用手动的去gcc/g++,相信,碰到boost这个工程,那只能是疯掉了。<br />古老的工具,也往往是最有用的,这个工具就是makefile。我在05年就把陈皓的博文整理成pdf。没有别的,只是为它增加了一个目录,方便阅读。<br />因为本人是非常懒的,不喜欢一页一页的去找。这个文档的名称是《跟我一起写 Makefile》。(注现在陈皓的主页是cocre.com,上面有很多有意思的文章,强烈建议大家去看)<br />我编译工程也是非常懒的,如果每增加一个cpp
2011-01-07 10:37:00 893
原创 不定参数的分析
<br />先看一个简单的使用例子<br />求任意个自然数的平方和:<br />int SqSum(int n,...){ va_list arg_ptr; int sum = 0,_n = n; arg_ptr = va_start(arg_ptr,n); while(_n != 0) { sum += (_n*_n); _n = va_arg(arg_ptr,int); } va_end(ar
2010-10-19 21:47:00 657
原创 位运算的一些技巧
1.M%N当N=2^p,M%N = M & (N - 1);2.计算数字N的二进制数字中1的个数while( n != 0 ){ n &= (n-1); cnt++;}【1】cnt表示N的二进制表示中1的个数。n-1实际上在消n中的1,消了几次1就等于统计了n中有多少个1。while( n != 0 ){ if ( n & 1 == 1 ) cnt++; n >>= 1;}【2】【1】式比【2】式的效率高3.计算比M大且为N的倍数的最小整数(N=2^p)K = (M +
2010-10-15 12:11:00 382
原创 虚拟内存
· 虚拟内存使用场合虚拟内存最适合用来管理大型对象或数据结构。比如说,电子表格程序,有很多单元格,但是也许大多数的单元格是没有数据的,用不着分配空间。也许,你会想到用动态链表,但是访问又没有数组快。定义二维数组,就会浪费很多空间。它的优点是同时具有数组的快速和链表的小空间的优点。· 分配虚拟内存如果你程序需要大块内存,你可以先保留内存,需要的时候再提
2008-07-23 16:09:00 584
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人