2012-01-24 32 views
5

Tôi muốn biết liệu có bất kỳ sự khác biệt nào giữa việc chạy một chương trình thông qua IDE Eclipse hay chạy nó bằng cách sử dụng dòng lệnh không? Sử dụng bộ nhớ và hiệu suất khôn ngoan.
Tôi đang sử dụng Java.Chạy java từ Eclipse hoặc Command prompt

Trả lời

3

Về cơ bản, Eclipse chạy JVM giống như java.exe, vì vậy không nên có bất kỳ giảm hiệu suất khi sử dụng các thông số JVM cùng (tất nhiên nếu bạn đang không chạy nó trong chế độ gỡ lỗi). Tuy nhiên, khi Eclipse quản lý nhiều thứ trước khi khởi chạy, nếu bạn phải khởi chạy một vài JVM, có thể tốt hơn nếu có một tập lệnh batch/shell script thực hiện các JVM, như trong trường hợp này, chi phí khởi chạy một JVM từ Eclipse có thể lớn hơn đáng kể (tuy nhiên, sẽ không có sự khác biệt sau khi khởi chạy).

0

Hộp thoại "chạy cấu hình" trong Eclipse cho phép bạn đặt tất cả các tham số sẽ được đặt trên dòng lệnh, như kích thước heap.

1

Eclipse chính nó là một ứng dụng java đi kèm với một chi phí nhất định, nếu không, không. Nói chung, dòng lệnh sẽ hoạt động tốt hơn nhật thực.

1

Tôi sẽ không nghĩ như vậy.

Nhưng rõ ràng với Eclipse đang mở, điều đó sẽ tự mình chiếm dụng bộ nhớ.

Các cấu hình chạy có thể được lưu và được quản lý dễ dàng hơn trong Eclipse.

1

suy nghĩ tốt nhất của tôi là sử dụng VisualVM để kiểm tra sự khác biệt về meomry và cpu, nhưng tôi sẽ ngạc nhiên khi thấy sự khác biệt lớn. Một điểm khác là thiết lập classpath, có sự khác biệt có thể/có thể xảy ra.

liên quan

1

Chỉ cần chạy một chương trình được biên dịch qua Eclipse phải giống như chạy chương trình qua dòng lệnh, miễn là bạn đảm bảo rằng tùy chọn JVM khớp. Eclipse theo mặc định gọi JVM đã được sử dụng để chạy Eclipse, mặc dù JVM và bất kỳ tùy chọn dòng lệnh nào cũng có thể được thiết lập thông qua hộp thoại Chạy cấu hình.

Một sự khác biệt đáng kể là sử dụng dòng lệnh có nghĩa là bạn có thể khởi chạy ứng dụng của mình mà không ảnh hưởng đến việc có Eclipse, có thể khá nhiều CPU và phần nào của bộ nhớ. thời gian. Trong khi chạy qua Eclipse không ảnh hưởng trực tiếp đến việc thực thi chương trình, nó vẫn có thể có hiệu lực chỉ bằng sự hiện diện của nó trên cùng một máy tính.

Điều đó nói rằng, có sự khác biệt nếu bằng cách "chạy qua dòng lệnh" bạn cũng ngụ ý quá trình biên dịch là tốt. Eclipse sử dụng ECJ, trình biên dịch Java gia tăng riêng của nó, thay vì thực hiện javac đi kèm với JDK. ECJ có một số phần mở rộng bổ sung, nhưng nó không phải lúc nào cũng tương thích hoàn toàn với JDK hiện tại - đôi khi tôi đã tìm thấy sự khác biệt trong bytecode được sản xuất, bao gồm một vài lỗi không có trong trình biên dịch JDK.

Các vấn đề liên quan