【问题标题】:trying to see how long a Lua script takes to finish executing试图查看 Lua 脚本完成执行需要多长时间
【发布时间】:2020-08-02 21:37:03
【问题描述】:

出于改进的原因,我正在尝试让我的 Lua 脚本告诉我执行整个脚本需要多长时间

我已经尝试在互联网上以无数种方式使用os.clock()os.time()os.difftime() 等函数来实现此结果,但它们最后总是返回0。有谁知道我该怎么做?

【问题讨论】:

  • 你的脚本太快了:-)
  • @EgorSkriptunoff 这是一个非常小的脚本,但我有办法收集毫秒数吗?
  • 你能分享有问题的脚本吗?或者您尝试使用 os 函数的示例。
  • 是否需要在 Lua 中?在 Unix 上,你可以这样做 time lua script.lua
  • @Nifim 我正在尝试为特定游戏创建有关 udemy 的 Lua 课程,并且我想创建一个优化主题,在其中展示如何优化 Lua 脚本,使其更快更轻,但我需要显示两个脚本在优化和不优化的情况下运行的区别,显示运行整个脚本所需的时间和毫秒(在 Windows 上)

标签: performance time lua


【解决方案1】:
local before = os.clock()

for i=1,1e6 do
   local double = i*2
end

local after = os.clock()

print(string.format("Loop took %0.6f seconds to run", after - before)

【讨论】:

    【解决方案2】:

    如果间隔太短,则只需多次运行片段,直到获得有意义的性能数字。

    例如,Python 的 timeitautorange 功能运行该函数的次数与基准测试至少需要两秒所需的次数一样多。

    这样你会得到两个数字; n,您实际运行的代码迭代了多少次,t,运行它们所需的时间(秒)。 n / t 将是每秒迭代次数,t / n * 1000 是每次迭代毫秒数。

    【讨论】:

      【解决方案3】:

      请注意,对于非常短的语句/脚本,os.clock 不够精确。 这就是为什么像 DarkWiiPlayer 所指出的那样多次运行代码是件好事。 如果你想谈优化,那么我们需要提到 profiling。 不久前,我使用纯 Lua 制作了一个分析器,欢迎您使用它: https://bitbucket.org/itraykov/profile.lua/src/master/ 分析时,您可以查看代码的哪些部分执行时间最长。

      【讨论】:

        猜你喜欢
        • 2017-12-08
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        • 2011-01-08
        • 2016-09-23
        • 2019-12-28
        相关资源
        最近更新 更多