Đây là phần tiếp theo của bài trước question. Tôi đang sử dụng ngã ba để tạo ra quá trình con. Bên trong con, tôi cho lệnh để chạy một quá trình như sau:thời gian thực hiện bởi quá trình con chia hai
if((childpid=fork())==0)
{
system("./runBinary ");
exit(1)
}
runBinary của tôi có chức năng đo bao nhiêu thời gian từ lúc bắt đầu đến khi kết thúc.
Điều làm tôi ngạc nhiên là khi chạy runBinary trực tiếp trên dòng lệnh, phải mất ~ 60 giây. Tuy nhiên, khi tôi chạy nó như là một quá trình con, nó mất nhiều hơn, như ~ 75 hoặc nhiều hơn. Có điều gì mà tôi có thể làm hoặc hiện đang làm sai, điều này dẫn đến điều này?
Cảm ơn bạn đã trợ giúp trước. CHI TIẾT THÊM: Tôi đang chạy trên máy chủ RHEL Linux, với 24 lõi. Tôi đang đo thời gian CPU. Tại một thời điểm, tôi chỉ ngã ba 8 đứa trẻ (tuần tự), mỗi trong số đó là ràng buộc với lõi khác nhau, bằng cách sử dụng bộ công cụ (không được hiển thị trong mã). Hệ thống không được tải trừ chương trình của riêng tôi.
Có thể mất 15 giây để quy trình cha mẹ ngủ của bạn bị đánh thức bởi o/s sau khi đứa trẻ ra khỏi? –
@JonathanLeffler bạn có thể nói cách xác nhận điều đó không? Cảm ơn – user984260
@ sarnold thực sự nó là runBinary đó là chính nó đo thời gian. – user984260