2011-09-21 5 views
1

どのようにしてLuaの任意のプロセスのmeomoryを取得できますか?Luaのプロセスのメモリ

Luaでも可能ですか? C#は可能ですが、わかりません。

C#では、私たちは、Luaのでは、このことと同じです何

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

を取得するにはPerformanceCounterクラスを使用することができますか?

IE(Internet Explorer)の5つのプロセスが実行されているとします。どのようにそれらのプロセスのリストを取得するには?

+3

ルアです。ルアは略語ではありません。 – Puppy

答えて

0

Luaには、この組み込み機能が付属していません。あなたはそれを提供するライブラリへのバインディングを書くことができますし、そうするためにプログラムとインターフェースすることもできます( "ps -aux | grep firefox"の出力のように)。

+0

メモリの取得方法 – che

1

Luaによって割り当てられたメモリをKバイト単位で取得するには、collectgarbage"count"を使用します。

2

他の人の言葉を詳述するために、Luaは埋め込み用に設計されたスクリプト言語です。つまり、内にの別のアプリケーションがあります。

Lua.exeはそのようなアプリケーションの1つです。しかし、Luaスクリプトを実行するために書くことができる唯一のアプリケーションではありません。

Luaスクリプトの中では、正確ににアクセスできます。は、周囲のアプリケーション環境で許可されているものです。アプリケーションが「ファイル」や「オペレーティングシステム」のようなものに明示的にアクセスすることを許可していない場合は、そのファイルにアクセスすることはできません。期間。

Luaの標準ライブラリ(アプリケーションではスクリプトの使用を禁じることができますが、Lua.exeでは可能ですが、そうでない組み込み環境もあります)はごくわずかです。 Luaを組み込み環境に理想的なものにする多くの機能を提供しているわけではありません。小さな標準ライブラリは小さな実行可能ファイルを意味します。これは、Pythonよりもモバイルアプリケーションでもっと多くのLuaを見る理由です。また、標準ライブラリはクロスプラットフォームなので、プラットフォーム固有のライブラリにはアクセスしません。

モジュール、ユーザ作成プログラム(LuaまたはC/C++)は、Lua.exeの環境にロードすることができます。そのようなモジュールは、あなたのLuaスクリプトに "プロセス"のようなものへのアクセス、プロセスのメモリ量などを与えることができます。しかし、あなたがそのようなモジュールにアクセスできない場合は、Luaスクリプトの中からその情報を得ることはできません。

あなたができることは、この特定のLua環境が直接割り当てて使用するメモリのサイズを得ることです。@ lhfはこう言っています:collectgarbage "count"