memory -- 14




1 2

200x200


概述nginx 是通过资源集中管理的方式管理资源的,即打开所有即将要用的资源,以备随时取用,无论是文件还是内存这样做的好处是避免了每次创建、打开资源造成的性能消耗因此,便有了内存池模块,用来

#技术帖    #操作系统    #数据结构    #struct   
概述存储映射 IO 使一个磁盘文件与存储空间中的一个缓冲区想映射,于是当从缓冲区中取数据时,就相当于读文件中的相应字节,同样,将数据写入缓冲区则相应字节被自动写入文件,这样就可以在不使用 read 和 write 的情况下执行 IO 操作了 存储映射mmap 函数用来声明一个映射,即告知内核将一个给定的文件映射到一个存储区域中void *mmap(void *addr, size_t len, int prot, int flag, int filedes, off_t off); 定义于 sys/mman.h 中调用成功返回映射区域的首地址,否则返回 MAP_FAILED 参数说明addraddr 参数用于指定映射存储区的起始地址,如果设为 0,则由系统选择该映射区的起始地址 len映射字节数 off要映射字节在文件中的起始偏移量通常应当是系统虚存页表长度的倍数虚存页表长度可以通过 _SC_PAGESIZE 或 _SC_PAGE_SIZE 参数调用 sysconf 函数获取 filedes被映射文件的文件描述符 p
#读书笔记    #技术帖    #龙潭书斋    #apue   

200x200


ngx_cycle 的初始化整个初始化过程中,最重要的就是全局变量 nginx_cycle 的初始化,很多变量都是在这个过程中初始化的nginx_cycle 又

#技术帖    #linux    #unix    #龙潭书斋   
mallocvoid *malloc(size_t size); 定义于stdlib.h头文件中分配指定字节的存储区,不对存储区进行初始化,所以存储区中内容是不确定的 callocvoid *calloc(size_t n, size_t size); 定义于stdlib.h头文件中分配n个size大小的连续内存,并全部用0初始化 reallocvoid *realloc(void *ptr, size_t num_bytes); 定义于stdlib.h头文件中更改已分配存储区大小,对于新增存储区,不初始化如果ptr为NULL,则与malloc完全等效 freevoid free(void *ptr); 定义于stdlib.h头文件中释放已分配的存储区 由于三个分配内存函数都是返回void *类型值,所以我们不需要对结果进行强制类型转换通常这些函数都是用sbrk系统调用实现的 allocavoid * alloca(size_t size); alloca是一个特殊的存储区分配函数,用于替代malloc,并不是ISO C的一部分他的优点是会在栈空间中动态开辟空间,而不是在堆中,这样,每当函数调用结束,空间会被自动释放,因此不会造成内存泄漏,但是他的缺点是栈帧的长度
#读书笔记    #技术帖    #linux    #unix   
1 2



京ICP备15018585号