python的缓冲区

什么是缓冲区?

缓冲区是内存空间的一部分,在内存中预留了一部分存储空间,这些空间用来缓存输入或输出的数据。


缓冲区有什么作用?

       计算机内存的I/O速度远远高于计算机外设的I/O速度,如果不使用缓冲区,在执行I/O操作时,内存和外设就必须同步进行读写操作。

       内存必须等外设输入(输出)一个字节后,才能再次输入(输出)一个字节,内存中的程序大部分时间都处于等待状态。

       使用缓冲区,程序在执行过程中,会先将所有数据都输出到缓冲区中,然后继续执行其他操作,缓冲区中的数据由外设自行读取处理

       当程序执行输入操作时,会先等外设将数据读入缓冲区中,无需同外设做同步的读写操作。


python的缓存机制

先来看一段code:

>>>num1 = int(1)
>>>num2 = int(1)
>>>print(num1 is num2)
True
>>>id(num1),id(num2)
(2895202681104, 2895202681104)

>>>str1 = "Tom"
>>>str2 = "Tom"
>>>print(str1 is str2)
True
>>>id(str1),id(str2)
(2895239095344, 2895239095344)

>>>num3 = float(2.0)
>>>num4 = float(2.0)
>>>print(num3 is num4)
False
>>>id(num3),id(num4)
(2895206805648, 2895237555312)

        可以看到:有些变量的值相等,其内存地址也一致;有些变量的值相等,但内存地址不同。

       在python中,字符串和整型对象都是不可变的(immutable)类型,因此python可以很高效地缓存它们。 

        Python2.3简单整数缓存范围是(-1,100),Python2.5.4以后简单整数缓存范围至少是(-5,256)。所有的短字符也都在缓存区。

       这种缓存机制可以提高程序运行的效率,也可以减少内存负担。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值