Liên quan đến câu hỏi khác của tôi Haskell collections with guaranteed worst-case bounds for every single operation?, tôi tò mò: Thời gian tạm dừng có thể được gây ra bởi việc thu gom rác thải?Thời gian tạm dừng có thể xảy ra trong chương trình Haskell do thu gom rác thải như thế nào?
Haskell có sử dụng một số loại thu gom rác gia tăng để chương trình bị dừng chỉ trong một thời gian ngắn hoặc có thể dừng trong vài giây trong trường hợp cực đoan không?
Tôi tìm thấy hai giấy tờ của SPJ về chủ đề: https://research.microsoft.com/en-us/um/people/simonpj/papers/non-stop/index.htm. Nhưng tôi không tìm thấy một tham chiếu nếu những ý tưởng này thực sự được áp dụng bởi GHC (hoặc các triển khai Haskell khác).
Lưu ý rằng trên lý thuyết có nhiều nguyên nhân gây chậm trễ không thể đoán trước được trong hoạt động của chương trình. Chúng bao gồm những thứ như phân trang bộ nhớ ảo và các công tắc ngữ cảnh được thực hiện bởi hệ điều hành. Những điều này áp dụng cho tất cả các ngôn ngữ, ngay cả những ngôn ngữ không sử dụng thu gom rác tự động. Về lý thuyết, chúng có thể chèn trễ giữa bất kỳ hoạt động nào của bất kỳ chương trình nào, với * không đảm bảo * có độ dài trễ tối đa. Trong thực tế, chúng hiếm khi là một vấn đề mà bạn phải đối phó trong lập trình "bình thường". Độ trễ GC là như nhau. – Ben