记忆Lua中的一个过程

时间:2011-09-21 21:41:59

标签: lua

如何获得Lua中任何过程的记录?

Lua有可能吗? C#是可能的,但我不确定。

在C#中,我们可以使用PerformanceCounter类来获取

PerformanceCounter WorkingSetMemoryCounter = new PerformanceCounter("Process",
    "Working Set", ReqProcess.ProcessName);

Lua中有什么相同的东西?

假设有5个IE(Internet Explorer)进程正在运行。如何获得这些流程的清单?

3 个答案:

答案 0 :(得分:2)

为了详细阐述其他人所说的内容,Lua是一种专为嵌入而设计的脚本语言。这意味着它在内部运行另一个应用程序。

Lua.exe就是这样一个应用程序。但它并不是唯一可以编写Lua脚本的应用程序。

在Lua脚本中,您可以完全访问 周围的应用程序环境允许的内容。如果应用程序没有明确允许您访问“文件”或“操作系统”之类的内容,那么您无法访问它们。周期。

Lua的标准库(应用程序可以禁止使用脚本.Lua.exe允许它,但有些嵌入式环境不允许)非常小。它没有提供很多便利设施,这使得Lua成为嵌入式环境的理想选择:小标准库意味着更小的可执行文件。这就是为什么你在移动应用程序中看到比使用Python更多的Lua。此外,标准库是跨平台的,因此它不访问特定于平台的库。

模块,用户编写的程序(Lua或C / C ++)可以加载到Lua.exe的环境中。这样的模块可以让你的Lua脚本访问“进程”,进程占用多少内存等等。但是,如果您无法访问此类模块,那么您就无法从Lua脚本中获取该信息。

你能够做的最多就是获得这个特定Lua环境直接分配和使用的内存大小,正如@lhf所说:collectgarbage "count"

答案 1 :(得分:1)

要获取Lua以Kbytes分配的内存,请使用collectgarbage"count"

答案 2 :(得分:0)

Lua没有这种内置功能。你可以写一个绑定到一个库,为你提供,或者你可以与程序接口来做到这一点(比如读取“ps -aux | grep firefox”的输出)。