消息称Python将加入“Immortal Objects”,可提升内存效率
(相关资料图)
IT之家 8 月 22 日消息,Meta 日前宣布将在 Python 中加入 Immortal Objects,使得对象可以绕过参照计数检查,成为在执行时持续存活的“不朽对象”,从而提高内存的使用效率,并有助于解除 Python 语言本身在平行运算上的局限。
IT之家发现,Meta 使用 Python 网页框架 Django 开发 Instagram 前端,并且使用多程序架构以及 Python 函数库 asyncio,以达到每个程序并行处理的目标,但因为 Instagram 前端无论是在业务逻辑还是处理的请求量层面,规模都十分庞大,开发者当下应用的这个方法,反而造成了对内存的大量需求,从而导致系统出现一系列性能障碍。
▲ 图源 Meta 提出的 PEP-683,目前已经被采纳
随着系统运作,每个服务器程序的私有内存使用增加,而共享内存减少,这样的现象造成内存效率低下。
开发人员分析发现,即便许多 Python 对象在整个执行时不可变,但是 Python 的参照计数和垃圾回收机制仍然会试图管理并修改这些对象,在每次读取和垃圾回收周期仍会执行写入时复制(Copy-On-Write,COW)步骤,使得原本共享的内存分页转为私有,共享内存效率也便因此减少,从而导致不必要的 CPU 和内存成本开销。
▲ 使用 Immortal Objects 可提升内存和 CPU 效率
当下 Meta 便是为了解决这个问题,从而宣布将在 Python 中加入 Immortal Objects,Immortal Objects 在对象的参照计数字段中,标记特殊值以创建“不朽对象”,也就是“核心对象状态永远不会改变的对象”,Runtime 会知道什么时候可以或是不可以改变参照计数字段和垃圾回收头。
在 Instagram 前端中,开发者原先通过“减少写入时复制操作”,以提高内存和 CPU 效率,当下随着 Immortal Objects 的加入,Instagram 前端便可以通过增加共享内存使用量,来大幅减少私有内存的使用。
由于 Immortal Objects 可以跨线程共享对象,不再需要 GIL(Global Interpreter Lock)达到线程安全性,Meta 认为,这项功能有望促进 Python 语言发展,且由于 Immortal Objects 保证堆对象真正的不可变性,因此也能够解除 Python 在并行运算的一系列限制。
标签:
为您推荐
- 怠惰之海攻略(怠)
- 未闻花名片尾曲中文翻唱(未闻花名片尾曲)
- 北京重大呼吸道传染病研究中心成立
- 加拿大不列颠哥伦比亚省宣布在野火地区实施旅行限制
- 搜救人员称夏威夷毛伊岛大火规模前所未见
- 王者挑战者又出现了?曙光这次又能玩出什么新花样?
- 一振不厥的意思和拼音 一振不厥的意思
- 盛德鑫泰新材料股份有限公司(盛德鑫泰)现金收购江苏锐美汽车零部件有限公司51%股权收创业板关注函
- 傅广生(关于傅广生的基本详情介绍)
- 汽车音响中正确的声场
- 意大利锡耶纳举行赛马节
- 木棉是什么面料
- 一锅炖不下!云南网友捡到超大号牛肝菌
- 日本政府最快将于22日决定核污染水排海时间
- 东华科技08月18日获深股通增持9.32万股
- 生益电子(688183):8月18日北向资金减持23.38万股
- 清远景点排行榜最新(清远景点排行榜)
- 暑期“博物馆热”持续升温 北京46家博物馆取消周一闭馆
- “湾创营”开营啦
- 赤峰黄金:上半年净利3.12亿元 同比降24.08%
- 山东2023年省级工业互联网平台名单公布
- 女子因家庭琐事要跳桥 民警冒雨将其劝下
- 《热烈》票房超过《长空之王》
- 技术创新让医学更有温度 ——记北京积水潭医院田伟院士
- 威马生产燃油车吗_威马生活电器
- 华中农业大学江湖绰号(华中农业大学楚天学院怎么样)
- 2023浙江提高工伤待遇标准 伤残津贴标准为每人每月198元
- 连续3个月减持!中国持有美国国债创14年新低
- 奋力推进中华民族伟大复兴
- 小孩买啥保险经济又实用?
- 女孩站在空调外机平台欲轻生,民警钻窗营救
- 民勤 10万亩葵花丰收在望
- 俄国防部:两架俄战略轰炸机在日本海上空飞行超6小时
- 为一线解决生产难题 建好属于钻井工的“工作室”
- 未来五年,南山妇女儿童事业发展蓝图
- 桥接人才与产业,推动产学研深度融合——智能机器人赋能未来发展
- 多方共治筑牢个人信息安全屏障
- 波长光电中签号出炉共2.81万个
- 全球家庭财富大缩水 欧美最惨
- 分享元宵节最美祝福短信
