2011-09-21 69 views
1

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

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

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

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

什么Lua是等同的吗?

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

+3

这是Lua。 Lua不是首字母缩写词。 – Puppy

回答

0

Lua不具备此内置功能。你可以写一个绑定到一个为你提供的库,或者你可以与一个程序进行交互(例如,阅读“ps -aux | grep firefox”的输出)。

+0

我们如何获得记忆 – che

1

要获得由Lua分配的内存(以KB为单位),请使用collectgarbage"count"

2

为了详细说明别人的说法,Lua是一种专为嵌入而设计的脚本语言。这意味着它在内运行另一个应用程序。

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

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

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

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

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