Luaテーブルが使用しているメモリの量を調べたいのですが、テーブルの内容を繰り返し処理したり、使用量をカウントしたりすることはありません。これを支援できるLua5.1関数またはサードパーティライブラリはありますか?
11244 次
4 に答える
8
コード全体の適切な場所(挿入操作の前後など)でcollectgarbage("count")または)を呼び出すことにより、Luaのメモリ使用量を監視できます。gcinfo(テーブルのサイズを取得する簡単な方法はありません。
于 2010-03-18T14:42:28.803 に答える
2
このタスクの機能はありません。なぜあなたはこれをしたいのですか?何を達成しようとしていますか?
于 2010-03-17T12:59:26.093 に答える
0
2016年の更新:参照:http ://www.lua.org/wshop15/Musa2.pdf
于 2010-03-18T18:52:50.937 に答える
0
あなたはこのようなことをすることができます:
local pre = collectgarbage("count")
local table = {1, 2, 3, 4, 5}
local aft = collectgarbage("count")
local probablyTableSize = aft - pre
print(probablyTableSize)
ただし、これがバックグラウンドで多くのことが行われている単純なテスト環境の外で正確であるかどうかはわかりません。table変数を宣言しているときに、より多くのメモリが追加/削除された可能性がわずかにあります。
これは冗長かもしれませんが、その場合にできることは、複数の試行の平均または中央値を取得して、何が起こるかを確認することです。
于 2021-04-22T00:54:22.627 に答える