2008-09-24 37 views
6

Tôi đang chạy các chương trình từ Eclipse (trên Windows) để ăn nhiều thời gian của CPU. Để tránh làm hỏng toàn bộ máy của tôi, tôi đặt mức độ ưu tiên thành Thấp bằng Trình quản lý tác vụ. Tuy nhiên, đây là một quá trình thủ công rườm rà. Có cách nào Eclipse có thể đặt ưu tiên này tự động không? EDIT: Tôi nhận ra rằng mỗi launcher cụ thể (Java, Python, vv) có phương pháp cấu hình riêng của nó, vì vậy tôi sẽ hạn chế câu hỏi này vào miền Java, đó là những gì tôi cần nhất.Làm cách nào để khởi chạy từ Eclipse với mức độ ưu tiên Thấp trong Windows?

Trả lời

0

Một lựa chọn tốt hơn là cấu hình dung lượng bộ nhớ mà Eclipse sẽ sử dụng: http://www.eclipsezone.com/eclipse/forums/t61618.html

Và thực hiện tìm kiếm google về -Xmx và -Xms tham số cho JVM (mà bạn có thể cấu hình cho chạy bên trong Eclipse).

Trân trọng

+0

tôi không có cần phải thay đổi việc sử dụng bộ nhớ trên thực tế, đó là dễ dàng như bạn nói. tôi đang chạy các chương trình sử dụng nhiều CPU. – adum

2

Tôi giả định rằng bạn khởi chạy các chương trình này bằng Công cụ bên ngoài. Nếu vậy, bạn có thể sửa đổi lệnh khởi chạy để sử dụng hack start /low được mô tả trước đó. Tuy nhiên, nếu các ứng dụng này có loại khởi chạy đặc biệt (như Ứng dụng Java hoặc tương tự), thì bạn gặp sự cố. Cách duy nhất bạn thực sự có thể thay đổi điều này là để mở mã nguồn cho Eclipse, tìm loại khởi chạy đó và nơi nó gửi nhiệm vụ và sau đó sửa đổi nó để sử dụng start /low. Xin lỗi, nhưng tôi không nghĩ rằng có một giải pháp đơn giản cho việc này.

0

Tôi đã dành một chút thời gian để điều tra việc này. Không có phương thức bên trong Java để giảm mức độ ưu tiên (theo như tôi thấy), vì vậy bạn cần sử dụng phương pháp "bắt đầu/tối thiểu". Tôi không cố gắng làm việc đó.

Thay vào đó, tôi có bộ xử lý đa nhân. Điều này cung cấp chỗ cho các công cụ khác, ngay cả khi một chương trình Java chạy amok trên một hạt nhân.

Rất khuyến khích.

0

Tôi muốn điều này là tốt, kỳ lạ là nó không phải là có thể, thực sự. Tôi biết bạn có thể thiết lập ưu tiên thread, nhưng tôi nghĩ rằng trong cửa sổ đất, chủ đề được tất cả các lịch trình "bên trong" ưu tiên quá trình như vậy để nói chuyện.

-4

Nếu bạn cần nó chỉ trong sự phát triển, bạn có thể thiết lập các ưu tiên của tất cả các quá trình khác để cao ...

+0

Nếu thiết lập một là cồng kềnh ... không nên thiết lập tất cả những người khác thậm chí còn tồi tệ hơn? – Scorpio

2

Tôi gặp vấn đề tương tự trên Windows --- khởi chạy các quy trình con sử dụng tất cả CPU (công việc song song), nhưng tôi muốn có sự đáp ứng tốt trong môi trường phát triển Windows của tôi.

Giải pháp: sau khi tung ra một số công việc:

cmd DOS >>wmic process where name="javaw.exe" CALL setpriority "below normal"

Không, điều này sẽ không ảnh hưởng đến quá trình eclipse.exe.

Java Giải pháp: Chèn mã này vào chương trình CPU-mãnh liệt của mình để hạ thấp ưu tiên của Windows riêng của họ:

public static void lowerMyProcessPriority() throws IOException { 
    String pid = ManagementFactory.getRuntimeMXBean().getName(); 
    int p = pid.indexOf("@"); 
    if (p > 0) pid = pid.substring(0,p); 
    String cmd = "wmic process where processid=<pid> CALL setpriority".replace("<pid>", pid); 
    List<String> ls = new ArrayList<>(Arrays.asList(cmd.split(" "))); 
    ls.add("\"below normal\""); 
    ProcessBuilder pb = new ProcessBuilder(ls); 
    pb.start(); 
} 

Vâng, thử nghiệm. Hoạt động trên Win7.

+0

cảm ơn. dos cmd là rất hữu ích cho các công cụ hàng loạt :) – wuppi

0

Sử dụng công cụ OS hoặc java.exe giả mạo để nắm bắt lệnh javaw.exe dài thực sự mà trình chạy nhật thực sinh ra.

Bỏ qua eclipse.exe và khởi chạy trực tiếp javaw.exe.

Khi bạn đã khởi chạy javaw.exe trực tiếp và chính xác.

START/BELOWNORMAL \ đường dẫn \ javaw.exe nhiều-of-thông số-to-load-workspace

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