【发布时间】:2017-11-28 14:30:07
【问题描述】:
对于一个项目,我必须执行 Lua 脚本,并且我想要一些关于执行的信息:内存大小、CPU 时间和运行时。我在 lua.org 上没有找到有关 Lua 编译器的某些参数的任何信息。有谁知道具有此功能的参数或编译器?稍后,我想用 PHP 分析我的 Lua 脚本。
- 通过 PHP 执行 Shell
- 并获取信息(内存大小、cpu 时间、运行时间)
谢谢!
【问题讨论】:
对于一个项目,我必须执行 Lua 脚本,并且我想要一些关于执行的信息:内存大小、CPU 时间和运行时。我在 lua.org 上没有找到有关 Lua 编译器的某些参数的任何信息。有谁知道具有此功能的参数或编译器?稍后,我想用 PHP 分析我的 Lua 脚本。
谢谢!
【问题讨论】:
要分析您的 Lua 脚本,只需将其包装在以下代码行中:
local time_start = os.time()
--------------------------------------
-- Your script is here
-- For example, just spend 5 seconds in CPU busy loop
repeat until os.clock() > 5
-- or call some external file containing your original script:
-- dofile("path/to/your_original_script.lua")
--------------------------------------
local mem_KBytes = collectgarbage("count") -- memory currently occupied by Lua
local CPU_seconds = os.clock() -- CPU time consumed
local runtime_seconds = os.time() - time_start -- "wall clock" time elapsed
print(mem_KBytes, CPU_seconds, runtime_seconds)
-- Output to stdout: 24.0205078125 5.000009 5
现在您可以使用 shell 命令lua path/to/this_script.lua 执行此脚本,并分析打印到 stdout 的最后一行以获取信息。
【讨论】:
socket.gettime 而不是os.time 来获得毫秒而不是秒分辨率的时间。使用你的 shell 的time,如time lua path/to/script.lua 也可以给出不同的有用时间(这些将包括启动时间)。