You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用random.random的特定Python代码在3.11比3.10.6运行慢?

为什么调用random.random的代码在Python 3.11中比3.10.6慢?

测试代码与运行结果

测试脚本(test.py)

import timeit
from random import random


def run():
    for i in range(100):
        j = random()


t = timeit.timeit(run, number=1000000)
print(t)

运行结果

  • Python 3.10.6环境:5.0430680999998
  • Python 3.11环境:5.801756700006081

可能的原因分析

  • random模块实现调整:Python 3.11对random模块的内部逻辑做了改动,比如为了提升随机性质量或强化线程安全特性,引入了额外的计算开销。例如,3.11中random()函数的底层随机数生成器(RNG)状态管理逻辑更严谨,导致单次调用的耗时略有增加。
  • 优化策略的权衡:Python 3.11整体字节码执行性能有显著提升,但针对某些高频调用的极小函数,可能因优化策略调整出现暂时的性能下降。这类问题通常会在后续小版本更新中得到修复。
  • 环境差异干扰:虽然使用conda切换环境,但不同版本环境的底层依赖库(如C实现细节)可能存在差异,进而影响性能。可以尝试在纯净的官方Python环境(非conda)中重复测试,排除环境干扰。

验证建议

  • 多次运行测试取平均值,避免单次运行的偶然误差;
  • 测试random模块的其他函数(如randint)是否也存在类似性能差异,定位问题是否集中在random()本身;
  • 查阅Python 3.11官方变更日志,确认random模块的具体改动点。

内容的提问来源于stack exchange,提问作者mh0w

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:50:44