- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近注意到关于 timeit
python 模块的以下内容:
在我的机器上:
from timeit import Timer
t = Timer(stmt='a = 2**3**4')
print("This took {:.3f}s to execute.".format(t.timeit()))
将产生:
This took 0.017s to execute.
另一方面写一个文件test.py:
#!/usr/bin/env python3
a = 2**3**4
并调用:
from timeit import Timer
t = Timer(stmt='import test')
print("This took {:.3f}s to execute.".format(t.timeit()))
将产生:
This took 0.126s to execute.
我想知道如何在不更改文件本身的情况下测试 test.py
的执行时间。我怎样才能解决导入文件的问题(因此会浪费时间)。
最佳答案
你的测量有一个问题,当你写的时候,你没有测量你认为你正在测量的东西:
t = Timer(stmt= 'a = 2**3**4')
您正在测量绑定(bind)时间!看:
>>> Timer(stmt='a = 10**5**4').timeit(100000)
0.0064544077574026915
>>> Timer(stmt='a = 2**3**4').timeit(100000)
0.006511381058487586
时间几乎相同,但计算 10**5**4
比 2**3**4
要长一些。 2**3**4
仅在编译代码时计算一次,这称为“常量折叠”,Python 在源代码编译期间执行的一些优化。
比较这两个结果:
>>> Timer(stmt= 'a = 2**3**4').timeit(100000)
0.00628656749199763
>>> Timer(stmt= 'a = x**y**z', setup='(x,y,z)=(2,3,4)').timeit(100000)
0.18055968312580717
但是这个加速不是白给的。有两点:
.pyc
文件大小增加(因为这个值存储在 .pyc
文件中)假设我有两个文件:
#foo1.py
a = 10**7**7
#foo2.py
x,y,z =(10,7,7)
a = x**y**z
如果我用 python -m py_compile foo1.py foo2.py
编译它们,我机器上的 .pyc
文件的大小将是:
foo1.cpython-36.pyc
- 364 882 字节foo2.cpython-36.pyc
- 150 字节关于Python - 及时克服导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875858/
我正在尝试使用 jsmart渲染Smarty客户端有 3 个模板。如果您没有使用它们的经验,请继续阅读,因为这可能只是我犯的一个简单的 JavaScript 错误。 它适用于简单的模板: 我创建模板(
对于每个 http 请求,ASP .NET 页面是否及时编译(JITting),或者在第一次请求页面时,或者在应用程序启动时编译? 我找不到任何相关资源。 最佳答案 ASP.NET automatic
我正在使用 Pandas 来管理一组具有多个属性的文件: import pandas as pd data = {'Objtype' : ['bias', 'bias', 'flat', 'fla
有没有办法找出单循环动画 GIF 需要多长时间才能完成? 最佳答案 好吧,具体情况取决于您使用什么接口(interface)来操作这些动画 GIF(我不知道原生 Java/AWT/Swing 中真正巧
我有三个相关列:时间、ID 和交互。我如何创建一个新列,其 id 值在给定时间窗口中的“交互”列中为“1”? 应该看起来像这样: time id vec_len quadrant int
我是一名优秀的程序员,十分优秀!