[英]How can I measure the execution time of a precompiled java class?
我有幾個Java類文件,每個文件都有一個main方法。 由於這些是已編譯的類,因此在調用這些類的main
方法之前和之后,我無法修改代碼並跟蹤系統時間。 有什么辦法可以從JVM或任何其他工具(最好是命令行)中獲得此度量?
創建一個空白的空應用程序,在啟動時不執行任何操作。
計時您的測試應用程序。
減去差異。
請注意,盡管您會遇到有關JIT,類加載時間等各種問題,這些問題都會影響測量的准確性。 至少您需要多次重復測試。
但是,這種測量本身也沒有任何意義。 如果您想知道為什么要這樣做,然后看看是否有更有用的問題可以提出,這可能會更好。
您可以實現這樣的類:
class caller {
public static void main(String[] args) {
long initialTime = System.currentTimeMillis();
precompiled_class_name.main(args);
long finalTime = System.currentTimeMillis();
System.out.println("Spent time: " + (finalTime - initialTime));
}
}
如果您需要更多內部信息,請使用類似以下的探查器: http : //jrat.sourceforge.net/
java -javaagent:shiftone-jrat.jar caller
那是命令行,但是您需要一個桌面應用程序來讀取結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.