为什么这个 len(s) 调用这么慢?

神秘

根据答案,该调用len(s)的复杂度为 O(1)。那么为什么在下载的 27kb 文件上调用它比在 1kb 文件上调用它慢得多呢?

27kb

>>> timeit.timeit('x = len(r.text)', 'from requests import get; r = get("https://cdn.discordapp.com/attachments/280190011918254081/293010649754370048/Journal.170203183244.01.log")', number = 20)
5.78126864130499

1kb

>>> timeit.timeit('x = len(r.text)', 'from requests import get; r = get("https://cdn.discordapp.com/attachments/280190011918254081/293016636288663562/Journal.170109120508.01.log")', number = 20)
0.00036539355403419904

问题是,这个例子运行在我的开发机器上,这是一台正常的工作电脑。应该运行代码的机器是 RaspberryPi,它的速度要慢几个数量级。

暗影游侠

尝试r.text在设置阶段分配给局部变量。它是一个惰性属性,而不是普通属性,并且您正在对构造值的工作进行计时,该值从内部缓存解码bytesstr,而不仅仅是len调用。

向 Martijn Pieters 致敬,以获得准确的参考!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么LOOP这么慢?

来自分类Dev

为什么拆分这么慢

来自分类Dev

为什么这个sql脚本这么慢,如何使它快如闪电?

来自分类Dev

为什么这个Clojure程序这么慢?如何使其快速运行?

来自分类Dev

为什么在R中的这个示例中data.table这么慢

来自分类Dev

为什么这个INNER JOIN / ORDER BY mysql查询这么慢?

来自分类Dev

为什么这个Clojure微型基准测试这么慢?

来自分类Dev

为什么PTVS这么慢?

来自分类Dev

为什么goroutines这么慢?

来自分类Dev

为什么这个Rust程序这么慢?我错过了什么?

来自分类Dev

为什么这个Haskell代码这么慢?

来自分类Dev

为什么这个Monte Carlo Haskell程序这么慢?

来自分类Dev

为什么这个pg查询这么慢?我怎样才能使其更快?

来自分类Dev

为什么这个xamarin页面这么慢?

来自分类Dev

为什么这个字典理解这么慢?请提出加快速度的方法

来自分类Dev

为什么这个Monte Carlo Haskell程序这么慢?

来自分类Dev

为什么ping这么慢?

来自分类Dev

为什么解开这么慢

来自分类Dev

为什么这个Joomla查询这么慢?

来自分类Dev

为什么这个日期范围查询这么慢?

来自分类Dev

为什么Powershell这么慢?

来自分类Dev

为什么这个简单的字宏这么慢

来自分类Dev

为什么这个主要检测程序这么慢?

来自分类Dev

为什么交换这么慢?

来自分类Dev

为什么对动态库函数的调用这么慢?

来自分类Dev

为什么这个特殊的次要GC这么慢

来自分类Dev

为什么这个Jquery / JavasScript这么慢?

来自分类Dev

为什么这个 SQL Server 查询这么慢?

来自分类Dev

为什么这个 select 语句这么慢?