簡體   English   中英

從Eclipse構建時,為什么Java程序比從命令行構建時慢?

[英]When built from eclipse, why is a java program slower than when built from command line?

我在一個循環中做了一些簡單的函數調用和字符串操作,與從eclipse啟動(Run as ...)相比,java程序在命令行下的運行速度要快得多。

打印了6行輸出,每行大約120個字符。 每行是一個性能結果,范圍從50ms到300ms。

總時間超過2秒。

這里的“慢得多”意味着,對於某些操作(函數調用),我看到的是20ms與300ms。

在控制台上運行一次后,Eclipse的速度趕上了!

更改並在eclipse中構建代碼后,如果不使用命令行重新構建,則CL的速度將下降。

似乎某些熱點信息僅由CL生成...

也許僅僅是Eclipse控制台比您的操作系統控制台要慢? 另外,在大約2秒的總運行時間中,您的基准測試可能非常不准確。

造成這種情況的最可能原因是Eclipse加載導致的內存使用情況,並且Eclipse還可能對可執行文件進行其他操作,例如交換類加載器或啟動Java調試器。

我想說的是,最可能的答案很簡單:Eclipse使用了大量資源,尤其是內存,並且使系統有點餓,從而導致交換和性能下降。 YMMV,並且不能保證我不看您的系統就對,這只是我的最佳猜測。

我確實同意其他評論,即Eclipse在運行應用程序並打印控制台時正在執行某些操作。

Eclipse具有自己的編譯器(通常稱為Eclipse JDT),該編譯器支持增量編譯。 由於Eclipse編譯的二進制文件是由javac編譯的,因此未對它進行優化。

這兩個編譯器具有不同的用途,JDT主要使Eclipse提供最先進的重構和自動完成功能,而javac則花費大量精力進行優化。

我想說應用程序在所有Eclipse行李的下面運行會更慢,這是可以理解的。 Eclipse將JVM進程作為一個子進程產生,我敢肯定,它仍然具有自己的“魔力”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM