当前位置: 首页 > news >正文

企业手机网站建设行情seo关键字怎么优化

企业手机网站建设行情,seo关键字怎么优化,产品软文范例800字,物联网的核心和基础是什么转载#xff1a;https://cloud.tencent.com/developer/article/1173720 操作系统内存布局 各种malloc的内存分配管理方式离不开操作系统的内存布局策略。 32位经典内存布局 32位系统下经典内存布局如上#xff0c;程序起始的1GB地址为内核空间#xff0c;接下来是向下增长…转载https://cloud.tencent.com/developer/article/1173720 操作系统内存布局 各种malloc的内存分配管理方式离不开操作系统的内存布局策略。 32位经典内存布局 32位系统下经典内存布局如上程序起始的1GB地址为内核空间接下来是向下增长的栈空间和由0x40000000向上增长的mmap地址。而堆地址是从底部开始去除ELF、数据段、代码段、常量段之后的地址并向上增长。但是这种布局有几个问题首先是容易遭受溢出攻击其次是堆地址空间只有不到1G有木有如果mmap内存比较少地址很浪费有木有所以后来就有了另一种内存布局。 32位默认内存布局 这幅图描述地比较清楚也比较完整。首先是加入了几种Random offset随机偏移导致内存溢出攻击不那么容易了其次是堆仍然向上但是mmap向下增长。但是这样的话栈空间就不是动态增长的了所以现在的操作系统都有栈大小限制来着Windows好像默认是2MB对吧Linux可以ulimit –s查看。这种内存布局地址利用度比较高。 64位内存布局 64位系统的寻址空间比较大所以仍然沿用了32位的经典布局但是加上了随机的mmap起始地址以防止溢出攻击。反正一时半会是用不了这么大的内存地址了所以至少N多年不会变了话说要生产出40TB的内存条把堆内存地址用光一时半会也搞不定吧。 总结 纵观各种内存布局对于大内存各种malloc基本上都是直接mmap的。而对于小数据则通过向操作系统申请扩大堆顶这时候操作系统会把需要的内存分页映射过来然后再由这些malloc管理这些堆内存块减少系统调用。而在free内存的时候不同的malloc有不同的策略不一定会把内存真正地还给系统所以很多时候如果访问了free掉的内存并不会立即Run Time Error只有访问的地址没有对应的内存分页才会崩掉。 Ptmalloc Ptmalloc采用主-从分配区的模式当一个线程需要分配资源的时候从链表中找到一个没加锁的分配区在进行内存分配。 小内存分配 在ptmalloc内部内存块采用chunk管理并且将大小相似的chunk用链表管理一个链表被称为一个bin。前64个bin里相邻的bin内的chunk大小相差8字节称为small bin后面的是large binlarge bin里的chunk按先大小再最近使用的顺序排列每次分配都找一个最小的能够使用的chunk。 Chunk的结构如上所示A位表示是不是在主分配区M表示是不是mmap出来滴P表示上一个内存紧邻的chunk是否在使用如果没在使用则size of previous chunk是上一个chunk的大小否则无意义而且被用作被分配出去的内存了正式根据P标记位和size of previous chunk在free内存块的时候来进行chunk合并的。当然如果chunk空闲mem里还记录了一些指针用于索引临近大小的chunk的实现原理就不复述了知道大致作用就行。 在free的时候ptmalloc会检查附近的chunk并尝试把连续空闲的chunk合并成一个大的chunk放到unstored bin里。但是当很小的chunk释放的时候ptmalloc会把它并入fast bin中。同样某些时候fast bin里的连续内存块会被合并并加入到一个unsorted bin里然后再才进入普通bin里。所以malloc小内存的时候是先查找fast bin再查找unsorted bin最后查找普通的bin如果unsorted bin里的chunk不合适则会把它扔到bin里。 大内存分配 Ptmalloc的分配的内存顶部还有一个top chunk如果前面的bin里的空闲chunk都不足以满足需要就是尝试从top chunk里分配内存。如果top chunk里也不够就要从操作系统里拿了。 还有就是特别大的内存会直接从系统mmap出来不受chunk管理这样的内存在回收的时候也会munmap还给操作系统。 简而言之就是** **小内存 [获取分配区(arena)并加锁] - fast bin - unsorted bin - small bin - large bin - top chunk - 扩展堆 大内存 直接mmap 总结 释放的时候几乎是和分配反过来再加上可一些chunk合并和从一个bin转移到另一个bin的操作。并且如果顶部有足够大的空闲chunk则收缩堆顶并还给操作系统。 介于此对于ptmalloc的内存分配使用有几个注意事项 Ptmalloc默认后分配内存先释放因为内存回收是从top chunk开始的。避免多线程频繁分配和释放内存会造成频繁加解锁。不要分配长生命周期的内存块容易造成内碎片影响内存回收。
http://wiki.neutronadmin.com/news/60007/

相关文章:

  • 网站建设提供源代码有什么用标书制作教程
  • 龙岩做网站的地方有哪些建立网站实验总结
  • 一个网站服务器多少钱网站开发验收报告
  • 医院网站制作多少钱wordpress教程网模板
  • 企业网站开发丨薇建站之星网站 seo优化
  • 北京购物网站建设公司POS机网站怎么做
  • wordpress显示网站在线人数东莞app培训网站建设
  • 水产养殖网站模板源码wordpress建网站主页
  • 营口手机网站建设西安个人做企业网站
  • 网站开发怎么样专业做二手房的网站有哪些
  • 企业网站模板优化全国十大网站建设公司
  • 创建个人网站教案百度收录网站怎么做
  • 58同城兰州网站建设太原网站建设网站
  • 漂亮的网站建设中静态页门户网站seo前期
  • 青岛 公司 网站建设价格服务平台名称大全
  • 富阳网站制作学校局域网站建设
  • 安徽省建设干校学校网站移动端网站建设的方案
  • 明星网站怎么设计wordpress主题使用
  • 销售平台网站建设方案模板wordpress值得买主题
  • 怎么提高网站响应速度嘉兴网站建设的地方
  • 做苗木选择哪个网站上海注册公司需要多少钱
  • 免费空间 上传网站购物网站 购物车界面如何做
  • 食品网站设计网络营销服务概念
  • 网站设计与建设实训静态网站如何添加关键词
  • 海纳企业网站建设软文吧
  • 网站绑定两个域名怎么做跳转iis7 新建网站
  • 电子商务网站开发数据库表格深圳有几个区地图
  • 贵阳市观山湖区网站建设动态设计参考网站
  • 网站报价详情金山石化网站建设
  • 手机网站源码带后台最简单的安卓开发工具