ad1

您当前位置:首页 > 生活消费

消息称Python将加入“ImmortalObjects”,可提升内存效

来源:IT之家
时间: 2023-08-23 14:42
阅读量:6071       

,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之家所有文章均包含本声明。

声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。

推荐阅读

 该系列掌机可选8GB、12GB和16GB内存,存储可选128GB、256GB和512GB,首发售价1999元到2999元。 参数方面,该系列掌机搭载的是高通骁

2023-08-23 14:42

 ,今年5月,联想推出了冰魄白配色的拯救者Y9000P2023电脑,i9-13900HX+RTX4060版本10299元。 今日,联想宣布冰魄白款拯救者R900

2023-08-23 14:42

 ,铭凡今日发布新款UM790XTX迷你主机,搭载AMD7040系处理器,性能释放达到70W。 IT之家整理铭凡新款UM790XTX迷你主机规格如下: 这款迷

2023-08-23 14:42

 上海生物医药研发用物品“白名单”2.0版实施优化流程药企需求得满足 本报讯记者日前从市商务委获悉,修订完善的《上海市生物医药研发用物品进口试点方案》2.0版正

2023-08-23 14:42

 ,世界上首艘使用“绿色甲醇”燃料的集装箱船目前已开启首航,这艘集装箱船名为“LauraMaersk”,是丹麦航运巨头马士基订购的25艘甲醇动力集装箱船中的系列第

2023-08-23 14:42

 ,据亿航智能官方公众号发文表示,亿航智能旗下的EH216-S型无人驾驶航空器目前已经通过中国民航局最终的型号合格审定试飞,EH216-S型无人机最后阶段的符合性

2023-08-23 14:42

 感谢IT之家网友独立摄影师的线索投递! ,R?DE罗德麦克风今天发布了一款专为电影制作人和内容创作者设计的新型无线话筒系统——WirelessPro。 R?

2023-08-23 14:42

 ,微软正在为其Edge浏览器开发新功能,将为用户带来更便捷的体验以及更好的隐私和安全保护。 据Leopeva64发现,微软正在为Edge浏览器的安卓版本开发两

2023-08-23 14:42

金融之家
关注我们
foot01
foot02
ewm
foot03
foota footb footc footd foote footf