当前位置:网站首页 > R语言数据分析 > 正文

ifstream和ofstream创建的文件在那里(ifstream和ofstream的区别)



最近不是很忙,所以闲暇之余学习开源代码,nginx是一个很好的选择,是一个教科书般的存在,但是本人是小菜鸟一个,linux下的开发…嗯嗯,正在学习中,所以我的学习环境是vs2010,见谅见谅啊。

nginx源_nginx

内存池的必要
基本的内存池结构
内存池的创建

ngx_create_pool(size_t size, ngx_log_t *log)

内存申请

ngx_palloc 从内存池中申请内存,并内存对其

对于内存对齐,现在来看看内存对齐的宏定义

当初我看到这里的时候,对于内存对齐很不理解,为什么要内存对齐呢·······而且这个公式看起来好复杂啊,所以在这里简单的提一句,想要详细了解还是需要后期好好理解,打个比方,这里有1-16个箱子,每个箱子能够存放4个球,如果存放红色的6个球需要两个箱子,1号箱子放满,但是2号箱子却没有放满,如果再放白色的12个球,把没有放满的箱子放满,那么还需要三个箱子,3号放满,4号放满,5号没有满,然后再继续存放球····乍一看,哇塞,内存好节省哦,但是如果你要去找白色的球的时候呢,需要在从2号开始找,3号,4号,5号,打开4次才能找到,如果一开始从3号箱子开始存放,是不是3次就能找到了呢,降低了访问的次数,提高了效率,所以内存对齐就是这个作用,将指针移动到需要内存对齐下一块内存的首地址上,开始存放数据,虽然会对内存造成浪费,但是能够有效的提高访问效率。
但是上面的宏定义如果做到的呢,输入的a为需要对齐的大小,一般为2的幂次方,如果输入首地址为7,对齐大小为sizeof(*void),,减1取反后的二进制为0100,输入的首地址加上减1后的对齐大小为10,二进制为1010,&运算后值为1000,十进制为8,是不是4的倍数呢,变成了对齐后的首地址了。

ngx_pnalloc从内存池中申请内存

这个和ngx_palloc比较就能看出来,申请内存没有经过内存对齐。

再看看内存池不够的时候,内存块申请

内存池的重置

ngx_reset_pool(ngx_pool_t *pool)内存池初始化

内存池的清理

ngx_pfree(ngx_pool_t *pool, void *p)

内存清理只释放大块的内存,对于小内存不清理

内存池的销毁

ngx_destroy_pool(ngx_pool_t *pool)

关于内存池的图

到此这篇ifstream和ofstream创建的文件在那里(ifstream和ofstream的区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • rme adi-2 dac和rme adi-2 pro区别(rme adi2 dac fs 新旧版)2025-05-17 23:09:06
  • msvcr100.dll,无法继续执行代码(msvcp100.dll,无法继续执行代码)2025-05-17 23:09:06
  • lncrna是什么意思(inrna是什么)2025-05-17 23:09:06
  • resnet50(ResNET50一般分多少个类)2025-05-17 23:09:06
  • rmsprop怎么念(prblms怎么读)2025-05-17 23:09:06
  • TreeSize free安卓版(tree size 安卓)2025-05-17 23:09:06
  • redhat 安装(redhat安装gcc)2025-05-17 23:09:06
  • hrnetone的竞争对手(netscout竞争对手)2025-05-17 23:09:06
  • redhat操作系统安装(redhat系统安装教程)2025-05-17 23:09:06
  • raise a suilen动画(rise and fall百科)2025-05-17 23:09:06
  • 全屏图片