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.