2014-01-29 92 views
1

我對所有這些性能改進的新東西都很陌生。任何人都可以提供一些好的工具或技術的名稱,用於檢查Web應用程序的性能,並找出服務器端和客戶端應用程序中的瓶頸。如果任何人可以提供鏈接的例子或教程這種工具或技術,這將是非常有益的。在此先感謝您的幫助。用於檢查彈簧性能和瓶頸的工具示例

使用VisualVM的我得到了以下結果

VisualVM Memory Profiler for my Web application

,請不要讓我知道如何找到我的應用程序代碼負責此。

+0

難道你忘了關閉對象流嗎?他們正在吃掉記憶。也許你需要不時重置它們,否則它們會記住所有的物體會永遠存在。 – maaartinus

+0

您要重置哪個對象流。我有一個Web應用程序。您能否讓我知道應該關閉哪種類型的對象流以及應用程序的哪一部分。如果您可以提供任何鏈接到文檔或信息,我可以正確理解這一點,這將對我非常有幫助。 – nikhilgupta86

+0

第四行顯示'ObjectStreamClass $ WeakClassKey',所以我想你正在使用一個對象流很多。第三行也可能相關。但我不知道你或你的框架在做什麼,只是基於稀缺信息的猜測。 – maaartinus

回答

1

提高Web應用程序的性能涉及到一些事情。

提高應用程序代碼包括:

  • 應用緩存 - 例如JCS,的EHCache
  • 壓縮的HTTP請求的Javascript
  • 平衡
  • 避免嵌入負載 - 水平/垂直縮放
  • Cookie的尺寸縮小

使用分析工具,像的JProfiler,JProbe的,JRockit的,VisualVM

編輯爲改變的問題:

您是否收到內存不足錯誤? 要查找與內存相關的問題,請定期拍攝快照並查找可能的泄漏。使用Deltas模式您可以在特定時間段內或在執行操作時輕鬆觀察新分配和處置的對象,從而可以輕鬆識別內存泄漏。此外,內存數據可以保存爲.nps快照,稍後可以使用比較功能將其與其他內存快照進行比較。一旦識別到內存泄漏,您可以使用內置的HeapWalker進一步調查泄漏。 HeapWalker已得到增強,可支持顯示保留大小並提供強大的OQL腳本引擎。

此外,還可以使用其他工具像堆分析:

  • HAT,Java堆分析工具
  • YourKit Java剖析
  • Memory Analyzer project在Eclipse中,促成了他們的SAP。
  • HeapWalker也是一個不錯的選擇。
+0

嗨,我編輯我的問題,併爲我的web應用程序提供了一個內存分析器現在問題是我如何找到應用程序的哪一部分負責它。如果它爲我提供了一些類名,我可以很容易地對它進行分類,但是當它提供了這樣的結果時,那麼什麼? – nikhilgupta86

+0

您的應用程序中是否收到OOM錯誤? –

+0

是的,當用戶數量增加到〜5-10時,它開始給出OOM錯誤。 – nikhilgupta86

2

你試過visualVM,它的自由和強大的工具來跟蹤J2EE應用的性能,它的一些特點:

  • 提供一個CPU剖析。
  • 提供有關線索的所有信息。
  • 提供JVM堆和內存狀態。
  • 提供有關GC活動的信息。

它來與JDK包,所以您不必安裝它,更多信息請檢查this