2011-04-29 99 views
4

我已經在OSX 10.6上安裝了Play,並且想測試基準內存使用情況。我閱讀了部署文檔,並注意到建議在反向代理服務器後面運行Play。什麼時候我跑play run myApp基本上打印Hello World我所看到的是這樣的:播放服務器內存使用情況

Initial memory usage when started is: 
10345 java user 0.1 22 71.5 MB Intel (64 bit) 

after a few several thousand hits, it grows substantially to: 
10345 java user 0.1 26 123.7 MB Intel (64 bit) 

Which is fine and all, but it slowly creeps up to 140MB after few thousand more 
test requests. 

我的問題是針對內存上面的量,如果這些數字是正常的。 我一直在尋找Java內存playapps.com優惠和 去我的調查結果表明,我的HelloWorld應用程序將不適合64MB的基本計劃。

這怎麼可能?是否有生產版本play run MyApp不支持 啓用開發相關功能?

回答

9

您是否嘗試過使用-Xmx64m開關運行您的應用程序(在application.conf中設置「jvm.memory = -Xmx64m」)。最近我一直在對Java進行大量的內存分析,並且對垃圾收集通常很懶惰。如果最大內存大小不受限制,它並不總是爭取保持內存大小。

以prod模式運行會有所幫助,因爲它沒有編譯器開銷。

Play網站確實運行在64Mb的最小的playapps服務器上,而且比你給的hello world例子複雜得多。所以最小的playapp應該沒問題!

+0

我想這個標誌讓內存不要超過175MB,但它仍然與我希望的64MB相差甚遠。在生產模式下,從生產模式下的大約250MB降到175MB,這個標誌是一個好的開始,所以感謝這個提示。 – 2011-05-01 12:54:40

+1

我想補充說,這個問題可能最好留給Play開發人員郵件列表來思考,因爲我發現生產模式下的hello world app有175MB的使用量,這種情況有點過分。這並沒有帶走本頁面的答案。兩者都以更好的方式幫助我理解Java和Play的各個方面。 – 2011-05-01 12:58:20

2

是的,你可以通過配置設置運行生產模式播放:

%production.application.mode=prod 

或通過命令行:

play run --%production <project> 

我知道(這是在玩框架谷歌組中的某些崗位)該項目的官方頁面運行在Playapps.net的小型實例中,每天平均訪問​​10萬次(類似這樣的事情,我的內存可能有錯誤!),並且它可以正常工作,因爲您可以欣賞它。

+0

我在playframework.org網站正在運行的一個非常輕的內存打印,如64Mb ...閱讀它...這麼小,它讓我吃驚:) – mandubian 2011-04-29 16:07:37

+1

我試過生產模式,並做了10000個測試請求後, java進程的內存佔用量跳至250 MB。 – 2011-04-30 00:51:33