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

Python与Numpy性能波动异常排查:8小时测试中的跳变问题

元胞自动机性能测试异常问题

我正在开发一款元胞自动机(cell-automata),并对代码进行性能测试,测试代码如下:

while True:
    time_1 = perf_counter_ns()
    numpy.fnc1()
    time_2 = perf_counter_ns()
    numpy.fnc2()
    time_3 = perf_counter_ns()
    numpy.fnc3()
    time_4 = perf_counter_ns()
    numpy.fnc4()
    time_5 = perf_counter_ns()
    numpy.fnc5()
    time_6 = perf_counter_ns()
    numpy.fnc6()
    time_7 = perf_counter_ns()

    diff_1 = time_2 - time_1
    diff_2 = time_3 - time_2
    diff_3 = time_4 - time_3
    diff_4 = time_5 - time_4
    diff_5 = time_6 - time_5
    diff_6 = time_7 - time_6

    print(results)

测试观测与环境

  • 核心现象:8小时长测试后,性能呈现跳变状态——快、慢状态交替出现,且快慢周期的时长随时间逐渐变长;快慢状态的平均性能差异至少2倍。累计完成约650万次循环。
  • 耗时特征:各函数(fnc1至fnc6)对应的耗时差值(diff_1至diff_6)快慢周期大致匹配,但不完全重合;diff_3的逐周期数据(多次放大)也呈现相同的跳变规律。
  • 测试环境:Debian 11系统,AMD Ryzen 5 2600六核处理器,仅运行GUI无其他程序,多数核心处于闲置状态。
  • 排除项:已排除常规系统进程干扰;排除数据驱动的性能变化——元胞自动机持续演化导致输入数据变化,但数组运算耗时不应受数值影响,且数据变化不可能引发整分钟级的稳定耗时波动。

问题

  1. 我观测到的具体现象是什么?
  2. 该现象的成因是什么?

我猜测可能与Python线程调度有关,但不确定Numpy是否使用线程——我的代码仅为单线程。同时希望找到方法让代码稳定在快状态。

内容的提问来源于stack exchange,提问作者Zoltan K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:30:12