Eclipse chạy chương trình java của tôi nhanh hơn 6 lần. Tôi có thể đạt được hiệu năng này mà không cần sử dụng nó không?


8

Tôi đã viết một chương trình java tạo ra tất cả các hoán vị lặp đi lặp lại dựa trên các ký tự và độ dài cho trước.

Khi tôi thực thi mã của mình trong Eclipse, nó tạo ra một tệp có 1.000.000 hoán vị chỉ trong 15 giây. Tuy nhiên, nếu tôi chạy chương trình trên cùng một máy trong dấu nhắc lệnh bằng cách sử dụng "java hoán vị" thì phải mất 1 phút 35 giây để tạo ra các hoán vị 1M tương tự ..

Tại sao lại thế này? Và dù sao tôi cũng có thể có được loại hiệu suất này mà không cần sử dụng nhật thực?

Chỉnh sửa: Đã thêm kết quả Java VisualVM

www.craftboom.co.uk/jvm.png - Việc sử dụng CPU cao hơn khi chạy trong nhật thực. Cả CPU và mức sử dụng bộ nhớ dường như giảm xuống 0 một cách ngẫu nhiên trong shell o_O

EDIT2: Hóa ra đó là một vấn đề in ra màn hình. Không đề cập đến nó trong bài viết gốc của tôi, nhưng chương trình in từng hoán vị cho bàn điều khiển .. Nhận xét rằng đã lưu và lưu vào một tệp thay vì .. bây giờ chạy nhanh như nhau trong cả vỏ và nhật thực. :-)

Cảm ơn tất cả đã trả lời.


3
Eclipse có nên chậm hơn không?
Động

1
bạn có thể chỉ cho chúng tôi cách bạn khởi chạy chương trình ngoài nhật thực không?
Winston Ewert

1
Tôi chỉ cần khởi chạy nó với một tệp .bat @echo tắt các hoán vị java
Lambert

2
Hãy chắc chắn rằng cả hai khởi chạy đều sử dụng cùng một môi trường thời gian chạy. Tìm ra một Eclipse sử dụng và cung cấp cho nó như là một tham số -vm khi khởi chạy dòng lệnh. Môi trường thời gian chạy mà Eclipse sử dụng khi khởi chạy được định cấu hình trong 'Chạy-> Chạy cấu hình ...', chọn cấu hình bạn sử dụng (có thể trong 'Ứng dụng Java' và tìm trong tab JRE.
Ozan

Câu trả lời:


9

Thời gian chạy lâu hơn cho thấy một vấn đề bộ nhớ. Hoặc bạn trao đổi vào đĩa hoặc bạn có nhiều bộ sưu tập rác hơn bên trong Eclipse (vì bạn có một đống nhỏ hơn).

Chạy bằng cách sử dụng một hồ sơ, và xem thời gian được sử dụng. Đối với Java bắt đầu với jvisualvm trong JDK.


Tôi đã chạy jvisualvm cho thấy chương trình không sử dụng hơn 20mb heapsize trong cả vỏ hoặc nhật thực.
Lambert

Đã thêm kết quả của tôi vào đây: craftboom.co.uk/jvm.png Dường như việc sử dụng CPU cao hơn khi chạy trong nhật thực. Cả CPU và mức sử dụng bộ nhớ dường như giảm xuống 0 một cách ngẫu nhiên trong vỏ o_O
Lambert

Hóa ra là do tôi đang in từng hoán vị cho bàn điều khiển .. vấn đề đã được giải quyết. Cảm ơn câu trả lời của bạn
Lambert

Vì vậy, vấn đề là sự chậm chạp của giao diện điều khiển của bạn. Luôn bỏ qua đầu ra giao diện điều khiển khi thời gian.

7

Kiểm tra các cài đặt trong eclipse.ini trong cài đặt của bạn (nó sẽ chứa các cài đặt JVM). Có thể là họ đang cấu hình JVM để sử dụng nó hiệu quả hơn so với khi bạn chạy chương trình.

http://wiki.eclipse.org/Eclipse.ini

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html


Tuy nhiên, cảm ơn bạn đã trả lời, tôi đã thử khởi chạy chương trình của mình với cùng các đối số được đưa ra cho nhật thực. Vẫn kết quả tương tự: /
Lambert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.