Việc sử dụng CPU sẽ liên tục biến quạt?


0

Tôi đã có một chương trình mà tôi muốn giới hạn việc sử dụng CPU (vâng, tôi đã đặt mức độ ưu tiên của quy trình và có, nó được tối ưu hóa). Nó luôn chiếm 100% năng lượng CPU, bị ràng buộc CPU và khối lượng công việc của nó sẽ không bao giờ kết thúc.

Tôi muốn giới hạn việc sử dụng quy trình này ở mức 30% sử dụng CPU và cách duy nhất tôi tìm thấy để thực hiện điều này trong một ứng dụng Windows là định kỳ ngủ chương trình. Đây là kết quả sử dụng CPU:

Sử dụng CPU

Việc sử dụng CPU được hiển thị ở trên là trong một giây. Nếu bạn lấy giá trị trung bình của biểu đồ đó, nó là ~ 32% (mục tiêu là 30). Trong thực tế, trình quản lý tác vụ báo cáo quá trình đang sử dụng từ 25 đến 35% mức sử dụng CPU bất cứ lúc nào.

Chương trình của tôi có thể được chạy trên máy tính xách tay, nơi người dùng có thể không muốn người hâm mộ của họ bật cho một quá trình nền. Ngoài ra, nhiều máy tính xách tay có trạng thái tiết kiệm năng lượng cho CPU của chúng và tôi không muốn chương trình của mình loại bỏ CPU khỏi trạng thái tiết kiệm năng lượng. Việc sử dụng CPU biến động liên tục được hiển thị ở trên sẽ bật quạt của máy tính xách tay hay loại bỏ nó khỏi trạng thái tiết kiệm năng lượng của nó (mức sử dụng có thể giảm xuống 15% hoặc thậm chí ít hơn, nhưng nó vẫn tạo ra dao động từ 100% đến 0%).


Bạn đã thử Threadmaster chưa? superuser.com/a/692192/449623 hay BES? superuser.com/a/214572/449623 Tôi biết họ đã già, nhưng vẫn có thể hoạt động.
qasdfdsaq

@ Byte11, chỉ để xác nhận, bạn có phải là nhà phát triển chương trình không? Bạn đã đề cập đến "chương trình của tôi" và "người dùng" trong câu hỏi. SuperUser là một nơi tốt để người dùng cuối và quản trị viên tìm câu trả lời, nhưng bạn có thể muốn sử dụng StackOverflow thay thế.
Con tin Christopher

@Christopherhostage Vâng, tôi đây. Tôi đã định sử dụng StackOverflow, nhưng điều này có liên quan nhiều đến việc sử dụng CPU phần cứng và chung hơn là chương trình của tôi hoặc thậm chí cả ngôn ngữ tôi đang sử dụng. Tôi đoán rằng nếu bạn thậm chí không cần biết ngôn ngữ lập trình, StackOverflow là chỗ sai.
Byte11

@qasdfdsaq Threadmaster chỉ cần tắt một số lõi nhất định. Tôi muốn có thể giới hạn chương trình của mình với độ chính xác cao hơn thế. Tôi đang xem xét cách BES hoạt động, nhưng hầu hết các chương trình như nó cũng hoạt động trên chương trình tạm dừng và tiếp tục hệ thống chương trình tôi đang sử dụng. Vì BES đã quá cũ, nhiều CPU máy tính xách tay tiết kiệm năng lượng trước đó không phải là một thứ và tôi không biết các ứng dụng đó sẽ ảnh hưởng đến máy tính như thế nào.
Byte11

@ Byte11, bạn có định hướng dẫn tất cả khách hàng của mình chạy chương trình bên thứ 3 để giới hạn chương trình của bạn không? Tôi không biết bạn sẽ phân phối chương trình của mình như thế nào, nhưng nếu nó sẽ được tải xuống từ một trang web công cộng, thì hầu hết người dùng sẽ bỏ qua hướng dẫn. Đừng quá phức tạp - hãy đặt điều khiển bên trong tệp thực thi của riêng bạn. Nhiều ngôn ngữ lập trình bao gồm hàm ngủ () hoặc các cách khác để thực hiện chờ đợi.
Con tin Christopher
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.