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

中山精品网站建设方案国内搜索引擎排名

中山精品网站建设方案,国内搜索引擎排名,html5 网站搭建,3d动画制作自学教程内存管理机制与内存映射相关。 一、C与C 之所以将C与C放在一起是因为C是C的超集; 但是C是面向过程语言,C是面向对象的语言; C与C都可以使用malloc、calloc、realloc来申请内存空间; 其中void* malloc(size_t size)是在内存的动态…

内存管理机制与内存映射相关。在这里插入图片描述

一、C与C++

之所以将C与C++放在一起是因为C++是C的超集;
但是C是面向过程语言,C++是面向对象的语言;
C与C++都可以使用malloc、calloc、realloc来申请内存空间;
其中void* malloc(size_t size)是在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需要内存空间的长度,返回该区域的首地址;
void* calloc(size_t num,size_t size)与malloc相似,不过函数calloc() 会将所分配的内存空间中的每一位都初始化为零;
void* realloc(void* p,size_t newsize)是给一个已经分配了地址的指针重新分配空间,可以做到对动态开辟内存大小的调整;
申请内存空间失败会返回NULL,用完后通过free释放;
C++相比C多了new&delete的函数,new在底层调用operator new全局函数来申请空间,delete在底层通过operator delete全局函数来释放空间,执行构造函数和析构函数是C++面向对象的特性;

二、Objective-C与Swift

iOS通过引用计数和自动释放池来进行内存管理,通常引用计数存储在对象的成员isa_t里的extra_rc中,在__arm64__环境下,extra_rc在内存中占19位,在__x86_64__环境下,占8位;
以__x86_64__环境为例,extra_rc大小总共8bit,最多存放2^7量级的数值,所以当extra_rc达到最大值需要通过另外的结构来存储引用计数;
App全局会维护一个SideTables,里面包含多个SideTable,可以通过对象的hash运算找到对应的SideTable,一个SideTable对应多个对象,里面有一个引用计数表和弱引用计数表;
再次对对象hash运算可以从SideTable中的refcnts中获取对象的引用计数;
weak_table中保存weak_entries,从weak_entries中通过对象查找某对象的弱引用信息weak_entry_t,weak_entry_t内保存着弱引用该对象的指针地址的hash数组;
当弱引用一个对象时,会通过obj从SideTables找到SideTable,找到SideTable中的弱引用表weak_table,通过obj从weak_table中的weak_entries找到obj对应的weak_entry_t,在obj对应的weak_entry_t的weak_referrer_t中加入弱引用obj的指针;
当对象释放时,会通过obj从SideTables找到SideTable,找到SideTable中的弱引用表weak_table,通过obj从weak_table中的weak_entries找到obj对应的weak_entry_t,查找weak_entry_t中的weak_referrer_t数组,并将weak_referrer_t中存储的指针指向nil;
每当有一个新的强引用指针指向,对象的引用计数就会+1,当减少一个强引用指针,引用计数就会-1,当引用计数为0时,对象就会被销毁;
对于自动释放池(@autoreleasepool),是一个双向链表结构,出栈入栈都是从栈顶开始;
objc_autoreleasePoolPush操作对应批量次的AutoReleasePoolPage::push(),会把pool中的对象全部压入栈结构;
objc_autoreleasePoolPop操作对应批量次的AutoReleasePoolPage::pop(),表示出栈,会依次给对象发送release消息,释放过程在pool自身对应的线程中进行;
栈有最大限额,超过后会新建一个栈节点添加到pool,新的对象会存入新栈;
当RunLoop即将进入休眠会销毁old pool同时释放pool中的对象,新建new pool;
主线程会自动创建RunLoop,子线程需要通过获取才会创建,RunLoop的作用是保活和任务处理。

不论是java还是dart都有对应的引用计数来进行内存管理机制,js的内存管理更像C++一样简陋。

http://www.hkea.cn/news/626902/

相关文章:

  • wordpress 怎么改中文网站推广优化价格
  • 南山做网站公司怎么选择企业seo优化服务
  • 什么 电子商务网站建设与管百度招商加盟
  • 南召微网站开发手机优化大师官方版
  • 营销型网站技术特点网站推广网
  • 龙游县住房和城乡建设局网站百度seo优化方法
  • 深圳方维网站建设设计个人网站
  • wordpress 流量站百度应用
  • ps素材网seo在线工具
  • 岳阳网站开发公司html网站模板免费
  • 怎样用模板做网站优化网站技术
  • 全国新型疫情最新情况长沙网站搭建优化
  • 郑州网站建设规划seo建站教程
  • 购物网站 购物车界面如何做百度搜索网
  • 推广网站的图片怎么做外贸平台
  • 新手如何给自己的网站做优化bt种子磁力搜索
  • 成都学校网站制作遵义网站seo
  • d?t网站模版宁波seo在线优化哪家好
  • c做的网站淄博做网站的公司
  • 网站开发制作公司郑州网站建设外包
  • 注册域名用个人还是公司好长沙seo优化排名
  • 电子商务网站建设与维护展望今日新闻联播
  • 网站建设主流技术站长之家ping检测
  • 温州建设集团有限公司网站首页百度手机版网页
  • 广西网络干部学院官网seo推广人员
  • 可以做红娘的相亲网站江北seo综合优化外包
  • 公司建设网站需要注意什么软文广告示范
  • 高端网站建设 引擎技企业网页
  • 模仿别人网站百度外链查询工具
  • 教程建设网站广告免费发布信息平台