2017-05-26 94 views
-1

我想在Eclipse中製作簡單的groovy腳本。 我注意到腳本經過一段時間後總是執行。大約一半的延遲。在同一時間,一個等效的java代碼執行沒有延遲。當我在控制檯中運行jar文件時也是如此。groovy - 執行前延遲

這是什麼原因?

+0

預感;它有更多的類加載(所有的groovy內部) –

回答

0

我確認了我的預感。當在Java中運行一個簡單的Hello World程序:用-XX:+TraceClassLoading

public class Main {  
    public static void main(String[] args) { 
     System.out.println("Hello World"); 
    }  
} 

,我可以看到它在輸出之前加載415班。

但對於同一個節目在Groovy:

class GMain { 

    public static void main(String[] args) { 
     println "Hello World"  
    } 
} 

它輸出前載入1665班。

加載類需要很多時間(因爲它通常包括硬盤I/O),所以這會佔用較長延遲的至少一部分。但總的來說,groovy運行時只需在啓動時執行更多,因此需要更長的時間。

+0

,如果使用@ groovy.transform.CompileStatic註釋groovy類? – daggett

+0

@daggett更多,它加載1769 –

+0

只要完成它,你可以給Groovy和Java版本,並嘗試groovy - 所有隻有lib和groovy-all-indy。提前致謝! – daggett