我在Windows下使用ActivePerl作爲我的Perl腳本,所以我可以通過Windows任務管理器中的「進程」選項卡查看它使用了多少內存。我發現不得不這樣做,而不麻煩。有另一種方法來確定我的Perl程序的內存使用情況嗎?如何在Windows下以編程方式確定我的Perl程序的內存使用情況?
2
A
回答
4
如果您使用ActivePerl,其中一些解決方案將無法工作。我已經拼湊出了一些我認爲應該可以在ActivePerl中使用的東西,但它尚未在5.10以下進行測試,因此您的里程可能會有所不同。作爲大同回答,您可以得到不同的數字取決於你問什麼,即MaximumWorkingSetSize
VS WorkingSetSize
等
use Win32::OLE qw/in/;
sub memory_usage() {
my $objWMI = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2');
my $processes = $objWMI->ExecQuery("select * from Win32_Process where ProcessId=$$");
foreach my $proc (in($processes)) {
return $proc->{WorkingSetSize};
}
}
print 'Memory usage: ', memory_usage(), "\n";
7
一種方法是使用Proc::ProcessTable
:
use Proc::ProcessTable;
print 'Memory usage: ', memory_usage(), "\n";
sub memory_usage() {
my $t = new Proc::ProcessTable;
foreach my $got (@{$t->table}) {
next
unless $got->pid eq $$;
return $got->size;
}
}
1
嘗試:
open(STAT , "</proc/$$/stat")
or die "Unable to open stat file";
@stat = split /\s+/ , <STAT>;
close(STAT);
你可以看看 「Determining memory usage of a process」 和PerlMonks 「Determining the Memory Usage of a Perl program from within Perl」。
+2
Krish,我修正了你的代碼格式,但我不確定這個答案是否與Windows環境有關。 – paxdiablo 2009-07-12 11:15:21
2
WMI是在Windows下從程序中檢查這種東西的標準方式。我相信你會尋找this。
MaximumWorkingSetSize
是正在使用的物理RAM的值。 VirtualSize
是您使用的總地址空間的大小。
相關問題
- 1. 在Windows中以編程方式確定電源使用情況?
- 2. 如何以編程方式獲取應用程序的內存使用情況
- 3. 如何確定我的.NET應用程序中的內存使用情況
- 4. 如何通過JMX以編程方式訪問內存使用情況?
- 5. 如何在不使用API的情況下以編程方式執行搜索?
- 6. 如何在不使用進程調用的情況下從插件內部以編程方式調用Maven?
- 7. 如何在不分配內存的情況下測量.net應用程序的內存使用情況?
- 8. 在HPUX上以編程方式獲取應用程序的CPU和內存使用情況
- 9. 如何在不使用WinMain的情況下編寫Windows應用程序?
- 10. Windows上C++應用程序的內存使用情況
- 11. 如何在不使用編輯器的情況下以編程方式在Eclipse中保存文件?
- 12. 我可以編程方式確定ReplSet的健康狀況(Java驅動程序)
- 13. 如何以編程方式檢查網站cpu使用情況?
- 14. 如何以編程方式使用Windows應用程序
- 15. 如何獲得C++在Windows下的內存使用情況
- 16. 如何以編程方式確定Word應用程序凍結
- 17. 如何在不編寫程序的情況下確定user.home的值?
- 18. 如何以編程方式確定Windows是否正在關機?
- 19. 如何以編程方式卸載Windows中的應用程序?
- 20. 如何獲取c#應用程序的內存使用情況?
- 21. 如何在不使用內置工具欄的情況下以編程方式在jqgrid上執行搜索
- 22. 測量分佈式應用程序的內存使用情況
- 23. 如何比較Linux和Windows上的應用程序內存使用情況?
- 24. 如何以編程方式確定我的桌面的大小?
- 25. VS2010 - 如何查看程序的內存使用情況?
- 26. 如何查找Haskell中程序的內存使用情況
- 27. 在我的情況下定義xsd模式的正確方法
- 28. 測量Java程序內存使用情況的最佳方法?
- 29. 如何確定Windows安裝程序是否以編程方式完成
- 30. Java:Java編譯器計算的程序的內存使用情況如何?
如果你已經安裝了Cygwin這將只能在Windows上運行。 – Joel 2011-05-18 14:57:52