Py学习  »  Python

python对于冗余操作不是那么“智能”[重复]

Rogério Dec • 4 年前 • 121 次点击  

这个问题已经有了答案:

与C++的许多情况不同,Python显然不足以优化冗余操作,即使在常数之间也是如此。

我做了一个简单的基准测试来测试math.cos的进出循环。

在第一个例子中,我使用python计算cos(3) 1000万次 :

from datetime import *
from math import *

ini = datetime.now()
for a in range(10000000):
    x = cos(0) 
fim = datetime.now()
print(fim - ini)

结果是 0:00:01.360958 .

现在,只需更换 x = cos(0) 通过 x = 1 (或者只是放 cos(0) 在循环之外的变量中),时间大约为 快3倍 : 0:00:00.429995

现在,如果 cos (0) 操作总是生成一个常量(1),为什么Python不使用缓存优化执行,从而避免重复相同的操作 cos 持续运转?

python的哲学之一是让程序员的生活更容易。但在这种情况下,情况正好相反。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38122
 
121 次点击  
文章 [ 1 ]  |  最新文章 4 年前
The_Senate
Reply   •   1 楼
The_Senate    5 年前

因为你必须自己编程。这就是C++的创造者在他所说的“高级语言”时的意思。(不是认真的,它总是在开头。)我不认为python是为了让程序员的生活更轻松,但比高级语言便宜。