小整数对象-springboot以ftp方式上传文件到远程服务器的流程

时间:2024-06-30 13:01:57
【文件属性】:

文件名称:小整数对象-springboot以ftp方式上传文件到远程服务器的流程

文件大小:1.85MB

文件格式:PDF

更新时间:2024-06-30 13:01:57

Python 源码剖析

2.2 小整数对象 在实际的编程中,对于数值比较小的整数,比如 1,2,29 等等,可能在程序中会非常频 繁地使用。想一想 C 语言中的 for 循环,就可以了解这些小整数会有多么频繁的使用场合。 在 Python 中,所有的对象都是存活在系统堆上。这就是说,如果没有特殊机制,对于这些 频繁使用的小整数对象,Python 将一次又一次地在使用 malloc 在堆上申请空间,并不厌其 烦地一次次 free。这样的操作不仅大大降低了运行效率(Python 本来就以速度慢被人诟病 了 :),而且会在系统堆上造成内存碎片,严重影响 Python 的整体性能。 显然,Guido 是决不能容许这样的方案存在的,于是在 Python 中,对小整数对象,使用 了对象池技术。刚才我们说了,PyIntObject 对象是 Immutable 对象,这带来了一个天大的喜 讯,所以对象池里的 PyIntObject 对象能够被任意地共享。 给你一个整数 100,你说它是个“小”整数吗?那么 101 呢?小整数和大整数的分界线 在哪里?Python 的回答是“it‟s all up on you”,你想它在哪里它就在哪里。 Python 中提供了一种方法,通过这种方法,用户可以动态地调整小整数与大整数的分界 线,从而动态确定对象池中到底应该有多少个对象。呃,但是,老实说,Python 提供的这 种方法比较原始,为了达到动态调整的目的,你只有自己修改源代码。 [intobject.c] #ifndef NSMALLPOSINTS #define NSMALLPOSINTS 100


网友评论