中国金融网 加入收藏    设为首页
首页
国内资讯社会财经科技教育时尚娱乐房产家居汽车母婴健康商业区块链生活企业传媒区域经济旅游体育
您现在的位置:首页 > 国内资讯 > 正文
消息称Python将加入“ImmortalObjects”,可提升内存效
2023-08-23 12:48      来源:IT之家      编辑:柳暮雪      阅读量:8660   

,Meta 日前宣布将在 Python 中加入 Immortal Objects,使得对象可以绕过参照计数检查,成为在执行时持续存活的“不朽对象”,从而提高内存的使用效率,并有助于解除 Python 语言本身在平行运算上的局限。

IT之家发现,Meta 使用 Python 网页框架 Django 开发 Instagram 前端,并且使用多程序架构以及 Python 函数库 asyncio,以达到每个程序并行处理的目标,但因为 Instagram 前端无论是在业务逻辑还是处理的请求量层面,规模都十分庞大,开发者当下应用的这个方法,反而造成了对内存的大量需求,从而导致系统出现一系列性能障碍。

图源Meta 提出的 PEP-683,目前已经被采纳

随着系统运作,每个服务器程序的私有内存使用增加,而共享内存减少,这样的现象造成内存效率低下。

开发人员分析发现,即便许多 Python 对象在整个执行时不可变,但是 Python 的参照计数和垃圾回收机制仍然会试图管理并修改这些对象,在每次读取和垃圾回收周期仍会执行写入时复制步骤,使得原本共享的内存分页转为私有,共享内存效率也便因此减少,从而导致不必要的 CPU 和内存成本开销。

使用Immortal Objects 可提升内存和 CPU 效率

当下 Meta 便是为了解决这个问题,从而宣布将在 Python 中加入 Immortal Objects,Immortal Objects 在对象的参照计数字段中,标记特殊值以创建“不朽对象”,也就是“核心对象状态永远不会改变的对象”,Runtime 会知道什么时候可以或是不可以改变参照计数字段和垃圾回收头。

在 Instagram 前端中,开发者原先通过“减少写入时复制操作”,以提高内存和 CPU 效率,当下随着Immortal Objects 的加入,Instagram 前端便可以通过增加共享内存使用量,来大幅减少私有内存的使用。

由于 Immortal Objects 可以跨线程共享对象,不再需要 GIL达到线程安全性,Meta 认为,这项功能有望促进 Python 语言发展,且由于 Immortal Objects 保证堆对象真正的不可变性,因此也能够解除 Python 在并行运算的一系列限制。

广告声明:文内含有的对外跳转链接,用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

 
上一篇: 山东黄金01787拟以4.22亿元购买金创集团所持有的燕山矿区采矿权等资
下一篇:最后一页
 
     栏目排行
  1. 山东黄金01787拟以4.22亿元购买金
  2. 锂电隔膜行业迎洗牌?星源材质董事长:落后
  3. 华润医疗01515公布中期业绩,净利润4
  4. 《女神异闻录3:Reload》明天下午3
  5. TGA2023颁奖典礼官宣12月7日举办
  6. 花生日记6周年狂欢庆典火热开启,线上线下
  7. 2022年经济发展新动能指数比上年增长2
  8. 山西太原:护航夜市经济
  9. Growth50·2023中国消费品牌系
  10. 国交融信立足互联网,展示销售魅力
     栏目推荐
二手房“带押过户”启动满月 成功尝鲜者寥寥无几二手房“带押过户”启动满月 成功尝鲜者寥寥无几
2022年营收78.61亿,汤臣倍健迎来VDS行业新2022年营收78.61亿,汤臣倍健迎来VDS行业新周期
大兴国际氢能示范区兼顾产业发展和配套服务打造员工理想大兴国际氢能示范区兼顾产业发展和配套服务打造员工理想生活蓝本
迪丽热巴穿军绿色也好美!和吴磊同框丝毫没有年龄迪丽热巴穿军绿色也好美!和吴磊同框丝毫没有年龄
绿色塞罕坝 不朽的奇迹绿色塞罕坝 不朽的奇迹