Tại sao mã của bạn không nên sử dụng CPU 100%? [đóng cửa]


42

Tôi đang nói cụ thể về chương trình C # .NET 4 chạy trên Windows XP trở lên, nhưng câu trả lời chung cũng được chấp nhận.

Giả sử một chương trình đã được tối ưu hóa và hiệu quả. Vấn đề ở đây hoàn toàn phụ thuộc vào tác động của việc sử dụng CPU cao đối với phần cứng và liệu chương trình sử dụng cao có nên được điều chỉnh để giảm hao mòn hay không, không phải là việc triển khai của tôi có hiệu quả hay không.

Một đồng nghiệp hôm nay đề nghị tôi không nên nhắm đến việc sử dụng CPU 100% cho các quá trình tải dữ liệu của mình vì "CPU hiện đại có giá rẻ và sẽ xuống cấp nhanh chóng ở CPU 100%".

Điều này có đúng không? Và nếu vậy, tại sao? Trước đây tôi đã có ấn tượng rằng việc sử dụng CPU 100% là thích hợp hơn cho một hoạt động chuyên sâu hoặc lâu dài và tôi không thể tìm thấy bất kỳ nguồn đáng kính nào về chủ đề này.


6
Giả sử rằng ứng dụng của bạn là thứ duy nhất chạy trên hộp, thì nói đúng ra, việc sử dụng CPU 100% không thực sự xấu, nhưng nó có thể chỉ ra rằng có một số thứ bạn có thể làm tốt hơn. Tôi chưa làm việc nhiều với các ứng dụng trên máy tính để bàn, nhưng đối với các ứng dụng web, chẳng hạn, tôi chưa bao giờ thấy một ứng dụng nào vượt quá tải CPU và mã sử dụng các chu trình đó thực sự tối ưu. Luôn luôn có một cái gì đó sai. Tuy nhiên, đó là vì trên web, chúng ta thường bị ràng buộc I / O, do đó, một vấn đề CPU có vẻ không phù hợp. Tôi chắc chắn ứng dụng của bạn là khác nhau.
Brandon

7
Ngoài ra, các hệ điều hành khác nhau xử lý trường hợp này khác nhau. Ví dụ, hộp Windows của tôi chạy khủng khiếp nếu CPU được sử dụng 100%. Mặt khác, tôi đã thấy một máy chủ Linux chạy CPU 100% trong vài ngày liên tục và nó vẫn ổn. (Mặc dù chúng tôi đã phát hành bản sửa lỗi vài ngày sau đó.)
Brandon

17
Bạn muốn làm việc nhanh nhất có thể trong khi không quá lãng phí. Nếu bạn sử dụng 100% CPU để thực hiện các tính toán hữu ích thì tốt. Nếu bạn sử dụng 100% CPU trong các vòng lặp vô dụng thì thật lãng phí.
nwp

10
Bạn đã trả tiền cho tất cả của nó. Sử dụng tất cả của nó.
Brian Hooper

4
Câu hỏi này dường như lạc đề vì nó liên quan đến điện tử chứ không phải về lập trình.

Câu trả lời:


59

Nếu làm mát không đủ, CPU có thể quá nóng. Nhưng tất cả chúng (tốt, ít nhất là tất cả các CPU PC hiện đại) đều có các cơ chế bảo vệ nhiệt khác nhau sẽ điều chỉnh tốc độ xung nhịp hoặc, như là một phương sách cuối cùng, ngừng hoạt động.

Vì vậy, có, trên một máy tính xách tay bụi bặm, tải CPU 100% có thể gây ra sự cố tạm thời, nhưng không có gì sẽ bị hỏng hoặc "xuống cấp" (bất kể điều đó có nghĩa là gì).

Đối với các vấn đề ràng buộc CPU, tải CPU 100% là cách phù hợp.

Đối với khả năng đáp ứng của ứng dụng (UI), đó là một khái niệm riêng biệt với việc sử dụng CPU. Hoàn toàn có thể có một ứng dụng không phản hồi sử dụng CPU 1% hoặc ứng dụng phản hồi sử dụng CPU 100%. Khả năng đáp ứng của UI làm giảm số lượng công việc được thực hiện trong luồng UI và mức độ ưu tiên của luồng UI so với các luồng khác.


3
và HĐH thậm chí có thể thực thi một lát hạ nhiệt cho các lõi
ratchet freak

8
Tôi nghĩ rằng câu trả lời thực sự là hầu hết các quá trình không bị ràng buộc bởi CPU, nhưng thay vào đó là ràng buộc I / O, đó thường là lý do tại sao chúng ta sống trong một thế giới nơi việc sử dụng CPU 100% là bất thường, ít nhất là cho tính toán "chung / chung".
kính chắn gió

4
@windfinder Tôi sẽ nói, đối với "tính toán", đạt được 100% là khá chuẩn, nhưng chỉ khi "tính toán" phải làm gì đó với toán học :) ví dụ xử lý các truy vấn MySQL không phải là tính toán với tôi;)
yo '

@tohecz - Theo nghĩa tôi đã sử dụng, tính toán chỉ có nghĩa là thời gian của CPU. Chúng tôi chỉ cãi nhau về thuật ngữ ở đây, với tôi mọi thứ mà CPU làm là tính toán (nó "tính toán"). Là một nhà khoa học dữ liệu, tôi cũng sẽ nói rằng hầu hết các toán học cũng bị ràng buộc I / O (ngoài toán học tầm thường nhất). Rất nhiều thời gian của bạn trong thế giới toán học đang tìm cách nén / truyền dữ liệu hiệu quả đến bộ xử lý của bạn để duy trì mức sử dụng CPU đó càng cao càng tốt (dĩ nhiên là giảm thiểu hiệu quả bộ đệm).
kính chắn gió

4
Giai thoại lại là "máy tính xách tay bụi bặm": đối với các thí nghiệm luận văn thạc sĩ của tôi, tôi đã sử dụng một máy tính xách tay 4 tuổi khi còn là một vận động viên. Sử dụng CPU 24/7 100% trong khoảng 3 tháng . Sau đó, cho biết máy tính xách tay đã bị rớt xuống vai trò máy chủ trong 4 năm nữa trước khi cuối cùng từ bỏ bóng ma (có lẽ là do vấn đề đồ họa đã bị hỏng).
mikołak

15

Các chương trình Windows (winforms / WPF) luôn luôn phải đáp ứng. Với việc triển khai một quy trình ngây thơ sử dụng tài nguyên cpu 100%, thật dễ dàng để làm cho chương trình của bạn hoặc thậm chí hệ thống của bạn có vẻ chậm chạp và treo lơ lửng.

Với một triển khai tốt (ví dụ: sử dụng một luồng riêng biệt với mức độ ưu tiên thấp hơn), đó không phải là một vấn đề.

Bạn không nên lo lắng về việc cpu của bạn bị hỏng sớm hơn.


3
Tất nhiên các chương trình thực hiện tính toán dài hạn có lẽ không nên là ứng dụng winforms / wpf mà thay vào đó là các công việc hàng loạt không có UI. Điều đó làm cho chúng đơn giản hơn vì chúng không cần quan tâm đến việc có luồng UI đáp ứng và cho phép khởi chạy chúng thông qua lịch trình tác vụ và như vậy. Nếu cần UI, tôi vẫn sẽ đề xuất ứng dụng launcher trong quy trình hoàn toàn riêng biệt (có thể vẫn đáp ứng khá dễ dàng; đủ để tránh chặn chờ thông báo trạng thái từ công việc hàng loạt).
Jan Hudec

15

Nhìn chung không có gì sai với một chương trình sử dụng CPU 100% trong khi nó thực sự đang làm công việc hữu ích và không mất thời gian từ bất cứ điều gì quan trọng hơn . Nếu một nền tảng phần cứng cụ thể, ví dụ như chỉ có khả năng sử dụng CPU 100% liên tục trong một giây trước khi nó phải điều tiết trở lại 50% để tránh quá nóng, thì nói chung là tốt hơn cho một ứng dụng có công việc hữu ích để thực hiệnđể chạy nhanh nhất có thể và để CPU hoặc HĐH xử lý mọi điều tiết cần thiết, hơn là cho một ứng dụng đoán nó "nên" chạy nhanh như thế nào. Nếu một ứng dụng hoặc luồng có công việc ưu tiên thấp sẽ hữu ích nhưng không phải lúc nào cũng quan trọng, thì hệ điều hành có thể hữu ích để giới hạn mức sử dụng CPU có mức độ ưu tiên thấp đến 50% để CPU cần phải làm một cái gì đó nhanh chóng nó sẽ sẵn sàng "chạy nước rút" trong một giây, nhưng ứng dụng không nên lo lắng về những điều như vậy ngoài việc yêu cầu mức độ ưu tiên của luồng thấp.

Các tình huống lớn nhất khi sử dụng CPU 100% là không tốt khi:

  • Ứng dụng đang bận rộn chờ đợi một số sự kiện sẽ không được xử lý nhanh chóng bởi việc bỏ phiếu liên tục [và thực sự có thể bị trì hoãn nếu nỗ lực lãng phí kiểm tra xem liệu nhiệm vụ đã hoàn thành có chiếm dụng tài nguyên CPU hay không, có thể được sử dụng để thực hiện nhiệm vụ].

  • Ứng dụng này được vẽ lại màn hình quá mức thường xuyên. Định nghĩa "quá mức thường xuyên" sẽ phụ thuộc vào một số biện pháp dựa trên bản chất của thiết bị hiển thị và nội dung được hiển thị. Nếu phần cứng màn hình có thể hiển thị 120 khung hình / giây, có thể có trường hợp hoạt hình có thể được hiển thị ở tốc độ 120 hình / giây mà không thêm mờ chuyển động, nhưng không thể hiển thị rõ ràng ở tốc độ khung hình thấp hơn mà không thêm nó. Nếu kết xuất khung hình với hiệu ứng nhòe chuyển động sẽ mất nhiều thời gian hơn so với kết xuất khung hình mà không hiển thị ở tốc độ 120fps trên phần cứng hỗ trợ nó thực sự không tốn kém hơn so với kết xuất ở tốc độ khung hình chậm hơn với độ mờ chuyển động. [Tình huống đơn giản: một bánh xe với 29 nan hoa, quay với tốc độ một vòng mỗi giây. Ở tốc độ 120fps, bánh xe sẽ xuất hiện để quay với tốc độ và hướng thích hợp; ở tốc độ 60fps,

Các cựu được nhận ra rõ ràng là xấu. Thứ hai là tinh tế hơn một chút. Nếu một người đang nhắm mục tiêu nền tảng di động, trong một số trường hợp, có thể mong muốn cho phép người dùng chọn tốc độ khung hình hoạt hình mong muốn, vì một số người dùng có thể không lo lắng về thời lượng pin nhưng muốn có chất lượng hoạt hình tốt nhất, trong khi những người khác chấp nhận chất lượng thấp hơn hoạt hình để đổi lấy tuổi thọ pin tốt hơn. Thay vì để ứng dụng thử đoán xem nên đánh đổi ở đâu, có thể hữu ích khi để người dùng tùy chỉnh nó.


10

"CPU hiện đại có giá rẻ và sẽ xuống cấp nhanh chóng ở mức 100% CPU".

Tôi không nghĩ ai đó thực sự đã giải quyết phần "xuống cấp" của câu hỏi này. IC sẽ xuống cấp khi nhiệt độ khuôn vượt quá giới hạn của nhà sản xuất. IC thường được thiết kế để hoạt động tới 125C, mặc dù cứ tăng 10C thì rút ngắn tuổi thọ thêm 50%

Bộ xử lý không phải lúc nào cũng có quy định nhiệt. Sau đó, một số AMD Durons gặp sự cố (được cho là có thể phá hủy một nếu chạy mà không có tản nhiệt). Bây giờ tất cả các bộ xử lý PC sẽ có các cảm biến nhiệt độ tích hợp đưa vào đồng hồ CPU và sẽ làm chậm đồng hồ để tránh làm hỏng. Vì vậy, bạn có thể thấy rằng chương trình của bạn đang sử dụng 100% CPU có sẵn nhưng CPU chỉ chạy ở 75% tốc độ định mức vì khả năng làm mát của nó không đủ.

Trong một chương trình người dùng không phải là nơi chính xác để cố gắng quản lý mức tiêu thụ CPU. Nói chung, chương trình của bạn nên xen kẽ giữa làm mọi việc nhanh nhất có thể và chờ đợi, tạm dừng, để truy cập đầu vào hoặc đĩa. Bạn nên tránh bận rộn chờ đợi và quay vòng nếu có thể, nhưng như một phép lịch sự với phần còn lại của hệ thống.

Cả Windows và Linux đều có các hệ thống "govenor" CPU sẽ thực hiện quản lý hiệu suất và nhiệt. Bởi vì điều này được thực hiện ở cấp hệ điều hành, nó có thể chiếm tổng mức tiêu thụ CPU của hệ thống. Hệ điều hành có trách nhiệm quản lý phần cứng và ngăn chặn các chương trình người dùng lạm dụng nó. Chủ sở hữu phần cứng có trách nhiệm giữ cho quạt sạch và hoạt động, và nhà sản xuất phải lắp quạt tản nhiệt và quạt đầy đủ ngay từ đầu.

Có một vài trường hợp các thiết bị có khả năng làm mát không đủ, nhưng một loạt lợi nhuận dạy cho các nhà sản xuất không làm điều đó.


Video về vụ nổ AMD Duron có khả năng là giả mạo. Tuyên bố của bạn về quy định nhiệt vẫn còn hiệu lực.
Sam

1
Hừm, tôi đã lấy nó ra vì tôi có thể thấy khá nhiều khiếu nại trên google rằng nó là giả.
pjc50

3
Có thể làm nóng CPU Intel Core hiện đại bằng cách viết mã đẩy công cụ SSE và cố tình vô hiệu hóa điều tiết CPU trong HĐH. Dường như các nhà sản xuất (thậm chí chính Intel) thiết kế các yêu cầu về nhiệt dựa trên giả định rằng điều đó không bình thường (có thể?) Để buộc CPU phải tính toán 4 flops được yêu cầu trong mỗi chu kỳ xung nhịp. Khi ai đó thực sự quản lý để viết mã, CPU của anh ta bắt đầu quá nóng. Xem: stackoverflow.com/questions/8389648/ khăn
slebetman

^ "được cho là có thể phá hủy một chiếc nếu chạy mà không cần tản nhiệt" - Tôi đã "xác nhận cá nhân" có thể phá hủy K7 trước đó mà không cần tản nhiệt .. ; Giống như, gần 2 thập kỷ trở lại? !!
dùng2864740

3

Để chơi người ủng hộ của quỷ: Theo một cách nào đó, một chương trình không thể đạt được mức sử dụng 100% có thể gây ra sự hao mòn tồi tệ hơn: Trừ khi nó bị đình chỉ chờ gõ phím, rất có thể nó bị treo chờ I / O trên đĩa. Và các đĩa là (vẫn thường) là các thiết bị cơ học lớn có thể bị hao mòn cơ học hoặc có nguy cơ bị sốc / tác động con quay khi chúng di chuyển, chưa kể tiêu thụ điện năng.


Trong trường hợp này, nó chỉ đơn giản là một quá trình phức tạp trên một tập dữ liệu lớn (trong bộ nhớ), mất vài phút. Nhưng nó chắc chắn là một điểm tốt cho các độc giả khác.
Nick Udell

3

".. CPU hiện đại có giá rẻ và sẽ xuống cấp nhanh chóng ở mức 100% CPU".

Bạn không phải lo lắng về "sự suy giảm CPU". CPU hiện đại không có chất lượng kém hơn so với thời trước.

rất tốn kém (và sẽ trở nên đắt hơn cứ sau vài năm) để tạo ra CPU, một số tỷ để xây dựng một fab mới không phải là hiếm (xem liên kết).

http://en.wikipedia.org/wiki/S Bán dẫn_fovenation_plant

Chi phí sản xuất của CPU phụ thuộc nhiều nhất vào không. của các đơn vị sản xuất. Đây là một thực tế nổi tiếng trong nền kinh tế. Đó là lý do họ có thể được bán (tương đối) "giá rẻ" sau khi tất cả. (Tôi nghĩ rằng, không có liên kết cần thiết ở đây)

Tôi có thể liệt kê một số lý do tại sao tôi coi các CPU hiện đại có xu hướng có chất lượng hơn so với "thời trước".

Nhưng chỉ quan trọng nhất: Ưu điểm trong thử nghiệm. Thiết bị điện tử hiện đại được "thiết kế để thử nghiệm". Cho dù phần mềm hay phần cứng, cái nhìn sâu sắc về việc định giá các bài kiểm tra đối với hầu hết mọi thứ khác, đều không quá cũ. Đối với CPU, các bài kiểm tra thậm chí được thực hiện để hình thành các loại giá và tần số khác nhau, ví dụ: CPU tốt nhất được bán với tần số cao nhất. Mặc dù vậy, các bộ xử lý rẻ hơn thường có khả năng hoạt động với tần suất cao hơn so với bán - chúng chỉ bị tê liệt vì lý do nhà sản xuất muốn bán một số bộ xử lý "cấp cao" với giá cao hơn.

(Mặt khác, tất nhiên có nhiều lỗi hơn đối với bộ xử lý có hơn 1,5 tỷ bóng bán dẫn như hiện nay so với hàng nghìn bóng bán dẫn của bộ xử lý của những năm bảy mươi. Nhưng điều này không mâu thuẫn với câu trả lời của tôi IMO. có xu hướng có nhiều lỗi đã biết, ít nhất là về vi mã, nhưng đây không phải là chủ đề ở đây.)

Thậm chí còn có nhiều lý do để không lo lắng về sự suy giảm CPU cho chương trình của bạn:

  • Lý do đầu tiên là CPU hiện đại giảm tần số hoặc bướm ga, nếu chúng đang quá nóng.

    Cần phải rõ ràng rằng nếu bạn sử dụng CPU 100% 24/7 cả năm, nó thường sẽ chết sớm hơn CPU chỉ được sử dụng mỗi tuần một giờ một giờ. Nhưng điều đó cũng đúng với xe hơi. Chỉ trong những trường hợp như vậy tôi mới nghĩ về việc sử dụng CPU và tiềm năng ngủ.

  • Lý do thứ hai là rất khó để viết một chương trình sử dụng 100% CPU từ HĐH, (ví dụ như trong Windows). Bên cạnh đó, CPU hiện đại (thông thường) có ít nhất 2-4 lõi. Vì vậy, một thuật toán truyền thống có xu hướng sử dụng 100% CPU lõi đơn, giờ chỉ còn 50% trên CPU lõi kép (đơn giản hóa nhưng được nhìn thấy trong các tình huống thực tế).

  • Ngoài ra, hệ điều hành có quyền kiểm soát CPU chứ không phải chương trình của bạn, vì vậy nếu có các ứng dụng khác có cùng mức ưu tiên cao hơn (mặc định là gì), chương trình của bạn chỉ nhận được càng nhiều CPU càng tốt, nhưng các ứng dụng khác sẽ không chết đói. (Tất nhiên đây chỉ là lý thuyết đơn giản hóa và tất nhiên việc đa nhiệm của Windows, Linux và các công cụ khác là không hoàn hảo, nhưng nhìn chung tôi sẽ xem xét điều đó là đúng).

"Trước đây tôi có ấn tượng rằng việc sử dụng CPU 100% là thích hợp hơn cho một hoạt động chuyên sâu hoặc lâu dài .."

Vâng, ở lại với điều này. Nhưng ví dụ, nếu bạn chờ đợi và lặp lại cho một quy trình khác, nói cách khác, không làm gì cả, sẽ không quá tệ nếu bạn Thread.S ngủ () vài mili giây trong vòng lặp đó, dành thêm thời gian cho người khác. Trong khi không cần thiết cho một hệ điều hành đa nhiệm tốt, tôi đã giải quyết một số vấn đề với điều này, ví dụ như đối với Windows 2000. (Điều đó KHÔNG có nghĩa là dĩ nhiên sử dụng chế độ Ngủ () trong tính toán ..


3
Trong khi câu trả lời này là đúng ngày hôm nay, có mối quan tâm cho tương lai. Trước đây, "trạng thái rắn" có nghĩa là độ tin cậy cao nhất, nhưng bây giờ chúng ta có đèn flash MLC trong một số trường hợp chỉ được xếp hạng cho 1000 chu kỳ xóa trên mỗi khối. Mất bao lâu cho đến khi thu nhỏ kích thước khuôn mang lại một hiện tượng tương tự cho các CPU cần chạy liên tục 100%?
Michael

2
@Michael, CPU không bị biến đổi, và chúng ghi vào bộ nhớ dễ bay hơi nhưng tôi vẫn hiểu những gì bạn đang cố nói.
Peter

3

Suy thoái như vậy về mặt lý thuyết là có thể và được gọi là " điện từ ". Điện từ phụ thuộc vào nhiệt độ, tăng tốc khi nhiệt độ tăng. Cho dù đó là một vấn đề thực tế cho CPU hiện đại là tranh luận. Thực hành thiết kế VLSI hiện đại bù cho điện từ và chip có nhiều khả năng thất bại vì những lý do khác.

Phải nói rằng, điện từ xảy ra ngay cả ở tải và nhiệt độ bình thường , nhưng nó đủ chậm để một con chip được thiết kế tốt sẽ trở nên lỗi thời trước khi thất bại, hoặc nó bị lỗi thông qua cơ chế khác trước.

Tốc độ điện từ phụ thuộc vào nhiệt độ chip, với tuổi thọ tăng gấp đôi cho mỗi (rất gần) 10 ° C. Trên thực tế, đây là cơ sở của một thử nghiệm gọi là "HTOL" (tuổi thọ hoạt động ở nhiệt độ cao), đo thời gian để một con chip chết trong bao lâu, giả sử, 125 ° C. Một con chip chạy ở 125 ° C sẽ thất bại nhanh hơn khoảng 100 lần so với con chip chạy ở 55 ° C, vì vậy nếu được thiết kế để tồn tại ít nhất 10 năm ở 55 ° C, một con chip có thể bị hỏng trong vòng 1 tháng ở 125 ° C. Nếu chạy ở một cái gì đó hợp lý hơn như 85 ° C, một con chip như vậy vẫn sẽ thất bại sớm hơn ít nhất 5-10 lần so với thiết kế.

Tất nhiên, CPU thường được thiết kế với nhiệt độ cao hơn, vì vậy chúng thường có thể tồn tại trong nhiều năm ở 85 ° C 24/7 hoạt động tải 100%. Vì vậy, tôi sẽ đề nghị bạn đừng lo lắng về việc "làm hao mòn" CPU và chỉ lo lắng về việc liệu tải 100% có phù hợp từ góc độ kỹ thuật phần mềm hay không.


Tìm từ đó dẫn đến một tìm kiếm có nhiều kết quả đọc tốt trên mạng SE ... nhiều trong số đó là trong Electronics.SE và SuperUser.

1

Nếu bạn đang chạy mã của mình trên máy khách, việc sử dụng CPU 100% có nghĩa là máy tính khách trong thời gian đó không thể được sử dụng cho bất kỳ thứ gì khác ngoài các tác vụ có mức độ ưu tiên cao hơn. Vì hầu hết các ứng dụng thường chạy ở mức ưu tiên mặc định, người dùng sử dụng các máy tính đó sẽ thấy máy tính bị đóng băng và sẽ không thể làm gì khác trên máy tính của họ. Ngay cả khi chúng ta đang nói về các vụ nổ ngắn, người dùng làm việc trên một cái gì đó vẫn sẽ nhận thấy nó.

Như những người khác nói, bạn khá bí mật về việc thiết lập, vì vậy tôi không thể nói chắc chắn. Nhưng, nếu khách hàng của bạn là máy tính để bàn, hãy tránh xa việc sử dụng CPU 100%. Không phải vì sự xuống cấp của CPU, mà vì nó không phải là hình thức tốt để làm gián đoạn người dùng trong quá trình làm việc của họ.


6
Windows hoạt động theo cách này. Trong Linux và nhiều hệ thống khác, các luồng chờ trên một thứ gì đó (đầu vào của người dùng) sẽ tự động được ưu tiên hơn các luồng sử dụng hết thời gian được phân bổ của chúng, vì vậy các chương trình tương tác vẫn đáp ứng ngay cả khi bạn không chơi với các ưu tiên.
Jan Hudec

2
@JanHudec Windows thực sự làm điều đó. superuser.com/questions/194223/
Mạnh

@NtscCobalt: Có. Những gì dường như không phải là Windows CE. Và Windows có vấn đề nghiêm trọng bất cứ khi nào một quá trình nặng nề trên đĩa, nhưng đó rõ ràng là một điều gì đó khác biệt (nói chung việc xử lý đĩa khá kém trong Windows).
Jan Hudec

1

Vì vậy, tình huống là: Bạn có một số mã chạy trong năm giờ bằng 100% tất cả các CPU, được tối ưu hóa hết mức có thể, chủ sở hữu của máy vẫn ổn với máy không thể sử dụng được trong năm giờ và đồng nghiệp của bạn tuyên bố sẽ tốt hơn nếu chạy mã của bạn trong 6 giờ bằng cách sử dụng 83,33% của tất cả các CPU, bởi vì nó làm giảm hao mòn trên máy tính.

Nó phụ thuộc vào máy tính mà bạn đang sử dụng. Tôi biết rằng một nhà sản xuất máy tính đã từ chối sửa chữa bảo hành trong thời gian bảo hành trên các máy tính gia đình giá rẻ được sử dụng trong môi trường khoa học hoạt động 24/7. Họ rõ ràng muốn khách hàng mua máy chủ đắt tiền hơn hoặc máy tính "kinh doanh" của họ. Cho dù họ đã thành công, tôi không biết.

Mỗi máy Mac mà tôi sở hữu đều có lúc chạy mã 100% với mức sử dụng CPU trong nhiều ngày. Trong một trường hợp, tôi đã phải tắt màn hình, vì tôi không có bộ sạc gốc cho máy tính xách tay, và với 4 lõi và siêu phân luồng, nó sử dụng nhiều năng lượng hơn bộ sạc được cung cấp - vì vậy pin bị hỏng và khi nó đạt được 5 phần trăm máy tính làm chậm tốc độ đồng hồ cho đến khi pin lên đến 10%! (Khi màn hình tắt, nó chạy ở tốc độ tối đa trong vài ngày). Trong mọi trường hợp, bất kỳ hiệu ứng xấu.

Vì vậy, với một máy tính được thiết kế tốt, bạn đã đúng. Với một máy tính giá rẻ, được thiết kế tồi, đồng nghiệp của bạn có thể đúng. Mặt khác, bạn có thể xem xét chi phí thời gian chờ đợi của bạn so với chi phí mua máy tính thay thế.


0

Nếu bạn có thể, hãy làm cho mã của bạn thành một nhiệm vụ ưu tiên thấp hơn và đảm bảo tách luồng xử lý nặng CPU khỏi GUI. Sau đó, bạn có thể sử dụng 100%, nhưng người dùng vẫn có thể vẫn chạy các tác vụ khác và vẫn phản hồi. Chính nó, một CPU được thiết kế để duy trì hoạt động ở mức sử dụng 100% trong một thời gian, hoặc nó sẽ không được phát hành. Trừ khi người dùng cuối đã thực hiện các sửa đổi nghiêm trọng và nguy hiểm cho phần cứng của họ, bạn không thể làm hỏng bất cứ thứ gì.

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.