Lua 中的进程内存。

如何在 Lua 中获取任何进程的内存?

Lua 可以实现吗?在 C# 中可以实现,但我不确定。

在 C#中,我们可以使用 PerformanceCounter 类来获取工作集内存计数器。例如:

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

在 Lua 中,它的等价物是什么?

假设有 5 个 IE(Internet Explorer)进程正在运行。我们如何获取这些进程的列表?

原文链接 https://stackoverflow.com/questions/7507033

点赞
stackoverflow用户18403
stackoverflow用户18403

Lua 没有内置该功能。您可以编写绑定到提供此功能的库,或者可以与程序进行接口来执行此功能(例如读取“ps -aux | grep firefox”的输出)。

2011-09-21 22:02:02
stackoverflow用户107090
stackoverflow用户107090

要获取 Lua 分配的内存(单位 Kbytes),可以使用 collectgarbage"count"

2011-09-21 22:10:24
stackoverflow用户734069
stackoverflow用户734069

为了详细说明其他人已经说过的,Lua是一种设计用于嵌入的脚本语言。这意味着它在另一个应用程序内部运行。

Lua.exe是其中一个应用程序。但Lua脚本可以被编写为在其他应用程序上执行。

在Lua脚本内部,您只能访问周围应用程序环境允许的内容。如果应用程序没有明确允许您访问诸如“文件”或“操作系统”之类的内容,则您无法访问它们。期。

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

模块,用户编写的程序(以Lua或C / C ++编写)可以加载到Lua.exe的环境中。这样的模块可以让您的Lua脚本访问诸如“进程”、“进程使用的内存量”等信息。但如果您没有访问此类模块,则无法从Lua脚本内部获得该信息。

最多只能获得此特定Lua环境正在直接分配和使用的内存大小,如@lhf所说:collectgarbage“count”

2011-09-21 22:30:14