社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Rogério Dec • 5 年前 • 149 次点击  

这个问题已经有了答案:

与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
 
149 次点击  
文章 [ 1 ]  |  最新文章 5 年前
The_Senate
Reply   •   1 楼
The_Senate    6 年前

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