Nginx的高性能的是用很多细节来保证,epoll下的多路io异步通知,阶段细分化的异步事件驱动,那么在内存管理这一块也是用了很大心血,上一篇我们讲到了slab分配器,我们可以可以看到那是对共享内存的管理的优化。Nginx在进程内也实现了自己的内存池,目的在于减少内存碎片,减少向操作系统的申请次数,减低模块开发难度。Nginx实现的内存池实际上非常简单。...
分类:
其他好文 时间:
2014-05-08 00:37:29
阅读次数:
403
8.2.2 操作ELF格式文件的方法
综合以上的描述,总结执行ELF格式文件的方法,步骤如下:
(1)从文件起始位置读取一个struct elf32_ehdr结构体,验证文件的正确性以及文件与操作系统是否匹配。
(2)找到该结构体中e_entry成员,从系统中获得这个值所指向的内存地址。
(3)读出struct elf32_ehdr结构体中的e_phoff、e_phextsize以及e_...
分类:
其他好文 时间:
2014-05-08 00:30:22
阅读次数:
845
本文将对内核中USB键盘驱动进行分析后改写,用一种简单的方式从新构造USB键盘驱动。...
分类:
其他好文 时间:
2014-05-07 23:47:11
阅读次数:
436
exit.c 代码分析笔记
release
释放进程的函数release() 主要根据指定进程的任务数据结构指针,在任务数组中删除指定的进程指针,释放相关内存页,并立刻让内核重新调度进程的运行。
void release(struct task_struct * p) //释放p指向的进程
{
int i;
if (!p) //常规检测...
分类:
系统相关 时间:
2014-05-07 23:35:51
阅读次数:
576
Memcache的特点: 分布式内存对象缓存系统,占用其他机子的内存。很多互联网,负载均衡三台(以三台为例)web服务器可以共享一台Memcache的资源。传递的信息以键值对的形式存储。传递的数据要实现序列化。
Oscache的特点: 页面级缓存,占用本机的内存资源。可以选择缓存到硬盘,如存取到硬盘重启服务也可重新获得上次持久化的资源,而如果缓存到内存就不行。一般没必要缓存到硬盘,因为I/O操作...
分类:
其他好文 时间:
2014-05-07 23:34:49
阅读次数:
284
android开发,从2010年开始学习到现在的独立完成一个app,这漫长的四年,已经经历了很多次bug的折磨,无数次的加班训练。然而,自以为自己已经比较了解android了,却最近在一个项目上,因为oom而折腾了一个周,回到原地,认识了自己的不足,感觉自己是如此的菜鸟呀。
好了,不废话,大家在使用开发android的时候,很少会注意或者意识到释放内存的重要性,因为大家在使用过程中,涉及的图片资...
分类:
移动开发 时间:
2014-05-07 22:53:52
阅读次数:
606
线程控制
线程属性
调用pthread_create函数的例子中,传入的参数都是空指针,而不是指向pthread_attr_t结果的指针。可以用pthread_attr_t结构修改线程默认属性,并把这些属性与创建的线程联系起来。可以使用pthread_attr_init函数初始化pthreaad_attr_t结构。调用pthread_attr_init以后,pthread_attr_t结构所...
分类:
编程语言 时间:
2014-05-07 21:41:14
阅读次数:
501
System.IO 命名空间
System.IO 命名空间的主要目的是为了提供方便访问操作系统的文件和目录类型,另外,也提供写内存和网络流的方法。
这个命名空间提供主要两种方法处理文件和目录,能够使用FileInfo 和 DirectoryInfo 对象获得或修改文件和目录的信息;也能够用File 和 Directory 类实现相同的功能,但是两者都要求传入的文件名为静态成员。通常,如果...
分类:
其他好文 时间:
2014-05-07 21:40:34
阅读次数:
322
一、gdb的功能:
1、启动被调试程序。
2、让被调试的程序在指定的位置停住。
3、当程序被停住时,可以检查程序状态
4、动态的改变程序的执行环境
二、gdb的基本使用流程:
1、编译生成可执行文件 :gdb -g hello.c -o hello
2、启动gdb :gdb hello
3、在某处设置断点 ...
分类:
数据库 时间:
2014-05-07 21:30:23
阅读次数:
327
下面的两个线程共享一个消息队列,一个用来放整数到队列,一个从队列里取消息出来。此程序在控制台不停的输出递增数字,主要是内存不会泄露
用到了多线程、ACE_Message_Queue、ACE_Message_Block、ACE_Thread_Manager::instance()->spawn等
#include
using namespace std;
#include "boost/lex...
分类:
其他好文 时间:
2014-05-07 21:29:38
阅读次数:
476