2012-04-15 29 views
10

Tôi thấy asm ("tạm dừng") trong mã của người khác và tôi tự hỏi nó làm gì. Mã được biên dịch bởi g ++ trên Linux.Asm ("pause") làm gì và tại sao sử dụng nó

Đường này nằm trong một vòng lặp nằm trong một chuỗi khác, liên tục thăm dò ý kiến ​​nếu cập nhật diễn ra. Tôi nghi ngờ nó làm cho chương trình tạm dừng một chút trước khi bỏ phiếu một lần nữa, nhưng tôi tự hỏi (1) Là đoán của tôi đúng (2) tại sao nó là cần thiết để tạm dừng? Máy chúng tôi chạy mã trên có nhiều bộ vi xử lý và tôi sẽ hoàn toàn bỏ phiếu.

+0

Mã hạt nhân hay mã ứng dụng? –

Trả lời

15

Về cơ bản, được gọi là vòng xoay hoặc chờ đợi bận. Nó sẽ tiêu thụ càng nhiều tài nguyên CPU càng tốt. Điều này lãng phí năng lượng xử lý CPU và tăng tiêu thụ điện năng.

Bằng cách đặt lệnh tạm dừng, bạn đang gợi ý bộ xử lý rằng "đây là vòng quay." Điều này buộc bộ vi xử lý không quá thông minh để thực hiện các dự đoán không cần thiết (tối ưu hóa). Ngoài ra, nó giải phóng thời gian CPU được sử dụng cho những thứ khác trong một số trường hợp (ví dụ: Siêu phân luồng).

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