正如我所說的,我想記錄程序運行時使用的最大內存。有沒有辦法記錄在PERL中運行的最大內存
1
A
回答
4
Devel::Size
一次只能測量內存大小一個一個具體的數據結構來衡量你的腳本基於UNIX使用的所有數據結構的總內存大小Proc::ProcessTable
爲它提供了一個很好的API:
這是一個簡單的腳本,將它與Devel :: Size進行比較。
#!/usr/bin/perl -w
use strict;
use Proc::ProcessTable;
use Devel::Size qw(size);
my @arr = ('A' .. 'M');
my $devel_size = size(\@arr);
print "With DEVEL::SIZE I'm $devel_size bytes big\n";
my $t = Proc::ProcessTable->new();
foreach my $p (@{$t->table}) {
if($p->pid() == $$) {
print "With Proc::ProcessTable I'm ", $p->size(), " bytes big.\n";
last;
}
}
它提供:
隨着DEVEL::SIZE
我是104個字節大。
與Proc::ProcessTable
我是5357568字節大。
注:信息來源:http://www.perlmonks.org/
0
發現這對perlmonks,http://www.perlmonks.org/?node_id=498401:
use Devel::Size qw/ total_size /;
print total_size(\%::);
相關問題
- 1. 有沒有辦法在最大爲
- 2. 有沒有辦法在oracle中查詢不同的行記錄?
- 3. 有沒有辦法在ipython筆記本中運行scala代碼?
- 4. 有沒有辦法爲JUnit測試用例運行MySQL內存?
- 5. 在Perl中,有沒有辦法在引號內做簡單的算術運算?
- 6. 有沒有辦法在ListViewController中刪除記錄時運行腳本
- 7. 有沒有辦法限制ASP.NET 3.5進程的最大內存大小?
- 8. 有沒有辦法在Perl中模擬內置的require函數?
- 9. 有沒有辦法記錄這個?
- 10. 有沒有辦法記錄高分,Java
- 11. 有沒有辦法記錄Awk結果?
- 12. 有沒有辦法記錄SQLite查詢?
- 13. 有沒有辦法記錄httpsession超時?
- 14. 有沒有辦法在東方db鉤內獲得舊記錄和新記錄
- 15. 有沒有辦法在「.git」目錄中記錄更改?
- 16. 有沒有辦法在Windows Perl中運行tr命令(或類似的東西)?
- 17. 有沒有辦法從運行的ruby進程轉儲內存中的對象?
- 18. 有沒有辦法在應用運行時看到Core Data存儲的內容?
- 19. 有沒有辦法對提取的記錄進行編號。
- 20. 有沒有辦法在mac上運行opencl內核代碼
- 21. 有沒有辦法在部分內部運行視圖
- 22. 有沒有辦法在AWS內部運行Virtualbox?
- 23. 有沒有辦法更新Arraylist中的記錄而不刪除現有記錄?
- 24. 有沒有辦法使Yii2查詢緩存記錄無效/髒?
- 25. Perl沒有運行
- 26. 有沒有辦法從別處的目錄運行SL4A腳本?
- 27. 有沒有辦法在R中讀寫內存中的文件?
- 28. 有沒有辦法運行NPM安裝
- 29. 有沒有辦法脫機運行Trac?
- 30. 有沒有辦法在android中記錄調用?
什麼內存?使用的系統內存總量,或perl腳本本身使用的內存,還是某些其他應用程序使用的內存? – s0me0ne
分配後,perl不會將內存釋放回操作系統,直到過程結束。從這個意義上說,在程序退出之前測量內存使用量就足夠了。 – mob
你可以看看'ps'輸出(或'top')來得到一個大概的想法。問題通常是與進程關聯的共享庫使用的內存;即哪個進程會「收取」內存使用量? – JRFerguson