2016-06-29 13 views
9

Uygulamam çalışma zamanı sırasında java kodu oluşturur ve JavaCompiler API'sını kullanarak derler. Oluşturulan dosyaların bazıları oldukça büyük olabilir - birkaç yüz bin satır. Komut satırında oluşturulan kod üzerinde javac komutunu çalıştırdığımda veya alternatif olarak JavaCompiler API'sı üzerinden derlemeyi yapan bir uygulama kullanırsam, bu dosyaların çoğunu derleyebilirim (~ 500) iki dakika altında çok büyüktür. Ancak, bir Tomcat sunucusunda çalışırken uygulamam aracılığıyla API'yi çağırırsam, derleme zamanı on iki dakikadan (yukarı) geçer.JavaCompiler API - tomcat uygulamasında yavaş derleme

Derlemenin performansını nasıl geliştireceğimize dair herhangi bir öneriniz için teşekkür ederiz.

Teşekkürler! (Iplik veya iplik havuzda) en yüksek değere iplik önceliğini ayarlamak için

+0

ToolProvider.getSystemJavaCompiler(); 'yerine çağrı yap ama bunun yerine Eclipse'in JDT derleyicisini kullandı, işler önemli ölçüde arttı. Bir açıklama, cevap olarak memnuniyetle kabul edilecektir. – Jewels

+0

Bir tahmin eclipse bir artımlı derleyici var, bu yüzden her zaman temiz bir yapı yapmıyor. Bu yanlış olsa da olabilir. Ayrıca jpeual jm ile jvac bakarak ana soru –

+0

ana soruyu yanıtlamıyor javac tek derleme tüm derleme çalışır gibi görünüyor, EclipseCompiler '.java' dosyaları derlemek için birçok iş parçacığı başlar. – Jewels

cevap

1

Dene: Bir aracılığıyla varsayılan sistem derleyici kullanarak açıldığında ben tam olarak neden benim parmak koyun, ama olamaz

setPriority(Thread.MAX_PRIORITY);