Python■你应该知道的Python3.6、3.7、3.8新特性( 七 )
multiprocessing模块新增SharedMemory类 , 可以在不同的Python进城之间创建共享的内存区域 。在旧版本的Python中 , 进程间共享数据只能通过写入文件、通过网络套接字发送 , 或采用Python的pickle模块进行序列化等方式 。 共享内存提供了进程间传递数据的更快的方式 , 从而使得Python的多处理器和多内核编程更有效率 。
共享内存片段可以作为单纯的字节区域来分配 , 也可以作为不可修改的类似于列表的对象来分配 , 其中能保存数字类型、字符串、字节对象、None对象等一小部分Python对象 。
6、 新版本的pickle协议Python的pickle模块提供了一种序列化和反序列化Python数据结构或实例的方法 , 可以将字典原样保存下来供以后读取 。 不同版本的Python支持的pickle协议不同 , 而3.8版本的支持范围更广、更强大、更有效的序列化 。
Python 3.8引入的第5版pickle协议可以用一种新方法pickle对象 , 它能支持Python的缓冲区协议 , 如bytes、memoryviews或Numpy array等 。 新的pickle避免了许多在pickle这些对象时的内存复制操作 。
NumPy、Apache Arrow等外部库在各自的Python绑定中支持新的pickle协议 。 新的pickle也可以作为Python 3.6和3.7的插件使用 , 可以从PyPI上安装 。
7、性能改进
- 许多内置方法和函数的速度都提高了20%~50% , 因为之前许多函数都需要进行不必要的参数转换 。
- 一个新的opcode缓存可以提高解释器中特定指令的速度 。 但是 , 目前实现了速度改进的只有LOAD_GLOBAL opcode , 其速度提高了40% 。 以后的版本中也会进行类似的优化 。
- 文件复制操作如
shutil.copyfile()和shutil.copytree()现在使用平台特定的调用和其他优化措施 , 来提高操作速度 。
- 新创建的列表现在平均比以前小了12% , 这要归功于列表构造函数如果能提前知道列表长度的情况下 , 可以进行优化 。
- Python 3.8中向新型类(如class A(object))的类变量中的写入操作变得更快 。 operator.itemgetter()和collections.namedtuple()也得到了速度优化 。
- Python电子书大全(仅展示部分)
- 【Python■你应该知道的Python3.6、3.7、3.8新特性】python学习手册、Python网络爬虫到实践、Python开发技术详解、python Web开发实战、Python语言程序设计基础等等......小编在这里已经全部整理完了 , 需要获取的小伙伴就可以转发此文 , 关注小编 , 私信小编“学习”就可以得到获取方式啦~~
- [霸王龙]地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 产业气象站|散热效果大大下降,CPU硅脂应该这样涂!涂多了得不偿失
- 「霸王龙」地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 大卫聊科技|中国首富原来是京东幕后大老板?低调过头了!,有多少人不知道
- 大头哥哥说娱乐|而自己却还不知道?教你几招快速分辨真假好友,微信已被好友删除
- Python之王|Pandas数据合并与拼接的5种方法
- 北峰电讯|你知道几个?,警用对讲机全是PDT?警察常用的模拟对讲机频段
- 王石头科技|30系列还值得买吗,应该选择哪款?,华为Mate 40要来了,Mate
- 霸王龙:地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 影弟提名1|总是打电话催你“换套餐”?可能很多人都不知道,为什么移动客服
