2012-08-30 45 views

回答

2

如果你使用的是乘客,你可以嘗試乘客記憶統計數據,這個統計數據可以給你一個很好的總覽,也可以通過使用top,shift-M和尋找紅寶石進程。

0

儘管它的名字,我已經成功地使用derailed_benchmarks gem來動態測試Padrino(基於Sinatra)應用程序的內存使用情況。 docs描述瞭如何爲非Rails Rack應用程序執行此操作 - 您只需在simple Rake task中定義DERAILED_APP以告訴它如何啓動您的應用程序。

它可以在本地主機上運行真正的服務器(我使用獨角獸),甚至可能與您的生產數據庫(定義爲DATABASE_URL)一起運行。如有必要,它也可用於測試任何端點並繞過認證。用例包括隨着時間的推移(找到泄漏)的內存使用情況以及在引導時爲給定端點(引導時使用大量內存)分析gem /所需的庫內存。

作爲示例,命令bundle exec derailed exec perf:mem在啓動時給出了我的應用程序根目錄的輸出(此處隱藏了< 3 MiB用法)。 Heroku的統計數據在我的製作服務器上告訴我大約70 MiB的數據。我的應用程序被稱爲'padfoot'順便說一句。

TOP: 71.75 MiB mechanize: 19.0898 MiB (Also required by: /Users/me/dev/padfoot/lib/parsers/transaction_table_parser.rb, /Users/me/dev/padfoot/lib/scrapers/app_details_scraper.rb, and 4 others) mechanize/pluggable_parsers: 11.1055 MiB mime/types: 10.9766 MiB (Also required by: /Users/me/.rvm/gems/ruby-2.3.1/gems/rest-client-1.8.0/lib/restclient/request, /Users/me/.rvm/gems/ruby-2.3.1/gems/rest-client-1.8.0/lib/restclient/payload) padrino: 13.1016 MiB padrino-core: 8.0273 MiB (Also required by: padrino-cache, padrino-admin) padrino-core/application: 3.3555 MiB sinatra/base: 3.1406 MiB (Also required by: padrino-core/ext/sinatra, sinatra/main) padrino-helpers: 3.707 MiB (Also required by: padrino-cache, padrino-admin) padrino/rendering: 3.3203 MiB (Also required by: /Users/me/dev/padfoot/app/app.rb) /Users/me/dev/padfoot/config/apps.rb: 6.9805 MiB /Users/me/dev/padfoot/app/app.rb: 6.8906 MiB aws-sdk-core/s3: 6.3711 MiB /Users/me/dev/padfoot/lib/scrapers/gps/gps_scraper.rb: 4.25 MiB linguistics/en: 4.1523 MiB /Users/me/dev/padfoot/lib/scrapers/digimap/digimap_scraper.rb: 3.0547 MiB

相關問題