2009-04-27 34 views
5

Tôi tìm thấy java khởi động và chạy thực tế ngay lập tức cho tôi - nhưng javac mất một vài giây, và kiến ​​làm cho nó chậm hơn một lần nữa. Chỉ một vài giây, nhưng vòng lặp kiểm tra biên dịch của tôi sẽ mượt mà hơn nếu không có nó. :-)Nhanh hơn javac/kiến?

BTW: Tôi đã sử dụng vim ": make" với kiến.

Có cách nào để tăng tốc độ javac và/hoặc kiến ​​không? Tôi đang nghĩ đến các công tắc đặc biệt, hay thủ thuật? Hoặc có thể là một trình biên dịch java thay thế (tôi đang sử dụng 1,6, trong linux)

Trả lời

4

Eclipse thực hiện điều đó cho bạn ... nhưng nó có thể hơi lớn như một "bản vá" cho vấn đề của bạn.

Điều đó sang một bên, bạn có thể cuộn plugin trình biên dịch của riêng mình. Có hai cách tiếp cận:

  1. Chạy trình biên dịch java từ bên trong kiến ​​(thay vì tạo quy trình mới). Không chắc chắn nếu kiến ​​đã làm điều đó; nếu không, điều đó sẽ giúp bạn tiết kiệm một chút thời gian. Nhìn vào số Java 6 compiler API để biết chi tiết.

  2. Chạy javac trong quy trình máy chủ để lắng nghe các tùy chọn trên ổ cắm. Trong kiến, gửi quá trình dòng lệnh và chờ cho đầu ra được gửi trở lại. Giúp bạn luôn bắt đầu một quy trình mới.

  3. Hãy thử sử dụng trình biên dịch eclipse. Không giống như javac ban đầu, trình biên dịch Eclipse khá tốt trong việc "bỏ qua" các lỗi, vì vậy nó có thể tạo ra các tệp lớp ngay cả khi chúng chứa các lỗi. Điều đó dường như không có ý nghĩa gì nhiều nhưng nó cho phép bạn biên dịch mọi lúc trong nền. Khi bạn lưu cuối cùng của bạn (gói tất cả mọi thứ lên), trình biên dịch sẽ có thể biên dịch mọi thứ khác và sẽ chỉ phải xem một tệp duy nhất.

+0

Cảm ơn, 1. Tôi nghĩ rằng có một tùy chọn cho dù là dĩa kiến ​​hay không. 2. Thiết lập một quá trình máy chủ java là một ý tưởng dễ thương, mặc dù tôi không chắc chắn làm thế nào để đi về nó :-). 3.Hầu hết thời gian (không phải luôn luôn) chỉ có một tệp để biên dịch (mặc dù tôi thấy trình biên dịch cũng đã được tải) – 13ren

+0

Tôi đã viết một máy chủ javac (2) và việc biên dịch bây giờ cảm thấy tức thì! Nó thực sự rất ngầu. (khoảng 0,5 giây; giảm từ 3-4 giây). Máy chủ gọi JavaCompiler.compile khi nó được gửi các tùy chọn javac và chuyển hướng stderr tới máy khách, do đó hành vi của máy khách không thể phân biệt được với javac (chỉ nhanh hơn). Không tích hợp với kiến, bởi vì bản thân kiến ​​thêm 1-2 giây (và tôi có thể nhận được mà không có kiến), nhưng tôi có thể nói kiến ​​khách hàng của tôi là một trình biên dịch. Tôi dừng máy chủ bằng "java pkill" - tôi đoán việc gửi tin nhắn "stop" là đúng. – 13ren

+0

Việc tải trình biên dịch Java mất rất nhiều thời gian (nó phải thiết lập môi trường, tải tất cả các lớp cho máy ảo, cấp phát nhiều bộ nhớ, v.v.). Tải (vài) tập tin để biên dịch thực sự là khá nhanh. –

1

Tôi mạnh mẽ có thể khuyên bạn sử dụng một IDE phù hợp với Java như sự gia tăng năng suất bằng cách sử dụng một trình soạn thảo mà biết về chương trình của bạn là bao la. Hãy suy nghĩ về "goto dòng có chứa defintion của biến/class/field con trỏ là", "đổi tên lớp này và tất cả các tham chiếu đến nó", và tất cả các loại khác của những điều tốt đẹp. Nếu bạn đang khó chịu với thời gian cần thiết để gọi Java, bạn có thể sẵn sàng :)

+1

Câu hỏi là về biên dịch, không gọi java ("java khởi động và chạy thực tế ngay lập tức"). Với ^], vim + ctags sẽ "goto dòng chứa định nghĩa của biến/lớp/trường con trỏ đang bật". Tôi thấy IDEs gây phiền nhiễu và kém hiệu quả hơn (thử nghiệm một tuần), mặc dù tôi mong đợi chúng rất hữu ích. – 13ren

+0

Ngay cả khi java khởi động và chạy thực tế ngay lập tức, javac không phải là những gì bạn đang phàn nàn. Bạn đã cố gắng tự mình tìm hiểu một IDE hay đã từng là một nhà phát triển có kinh nghiệm? –

+0

Khi được hỏi câu hỏi, tôi biết điều đó. Tôi đã chỉ ra rằng bạn dường như không đọc câu hỏi. Tôi không chắc chắn tôi muốn có một cuộc trò chuyện với bạn, khi bạn xuất hiện để được khá kiêu ngạo, với dòng "bạn có thể đã sẵn sàng" của bạn. Ồ, tôi sẽ đưa bạn đi: Tôi đã tự mình thử IDE mà không có người dùng có kinh nghiệm về nó. Tuy nhiên, trong việc học vim, tôi có nhiều người dùng có kinh nghiệm xung quanh, vì vậy điều này có thể giúp ích rất nhiều. Từ câu trả lời của bạn, bạn có vẻ không quen thuộc với vim. – 13ren

3

Google tìm thấy hai (Tôi đã không cố gắng hoặc chưa)

  1. javac-J-client -J-Xms100m -J-Xmx100m<src>

  2. JBrownie "theo dõi mã nguồn Java và tự động biên dịch lại bất kỳ tệp nào được tìm thấy đã thay đổi" dọc theo dòng Aaron Digulla (2)

+0

Liên kết đầu tiên bị hỏng và có vẻ như OpenJDK thiếu tùy chọn '-J-client' – zserge

0

Tôi trỏ tất cả các tệp đầu ra của mình vào một đĩa RAM mà tôi tạo với this utility. Nó tăng tốc độ xây dựng một chút công bằng (Mặc dù không đến một mức độ kỳ diệu) vì hầu như tất cả mọi thứ trong bộ nhớ. Đó là đáng chú ý nhất khi làm một "sạch" xây dựng mà trở nên gần như ngay lập tức.