2011-09-21 67 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"