在使用Hibenate作爲ORM工具和Oracle 11G作爲數據庫的Java應用程序上執行性能測試時,可能會出現哪些針點。積分用於在應用程序上執行性能測試
我也在考慮應用的基準。所以,我該怎麼做。
謝謝
在使用Hibenate作爲ORM工具和Oracle 11G作爲數據庫的Java應用程序上執行性能測試時,可能會出現哪些針點。積分用於在應用程序上執行性能測試
我也在考慮應用的基準。所以,我該怎麼做。
謝謝
關鍵的事情是:
1)儘可能的實際測試使用真實的使用場景的應用程序 - 這可能是相當複雜的實踐 - 我已經基於萬維網使用Perl腳本::機械化和http ::記錄器for this在過去。
2)不認爲AB或JMeter的
3)記錄作爲錨赫越好(你不提您所使用的web服務器 - 如果它的阿帕奇,在日誌中添加%d)
4 )確保你使系統飽和 - 你要確保你獲得了一些主要的垃圾收集(或者證明它的homoeostatic - 對於Java程序來說這是非常罕見的事情)
5)分析webserver和gc日誌。
讓Hibernate記錄所有執行的SQL。
檢查this link的配置屬性並將hibernate.show_sql
設置爲true。一旦你能看到正在執行的內容,如果你懷疑它們比預期的要慢,請檢查任何不尋常的語句並描述它們。
之後檢查他們的執行計劃並調整它們以進一步優化將有助於您的應用程序和數據庫。
不確定是否使用不同的技術(例如Hibernate)會改變您執行應用程序性能測試的方式。
有一些運行性能測試的標準工具,它們應該適用於您的應用程序所使用的技術。
使show_sql爲true將有助於查看查詢並進一步分析它們,但可能無助於您的應用程序的整體性能測試。
查看以下文章Java benchmarking tool的基準測試工具。
希望這會有所幫助。
首先要開始的是同意什麼是可接受的性能。沒有這個協議,任何事情都是不成熟的。
不同的應用程序類型將有不同的痛點。讀寫混合,併發更新(特別是在相同的數據上 - 例如銷售演唱會門票或飛機座位),數據量。
不知道你的應用程序「使用Oracle 11G作爲數據庫」的程度,甚至是什麼類型的環境(我假設是典型的oltp),但從Oracle方面你可以做幾件事情: