Tôi có một số tệp lớn, lớn mà tôi làm việc cùng và tôi sử dụng một số hàm I/O khác nhau để truy cập chúng. Phổ biến nhất là gói bigmemory
.Kiểm tra xem bộ đệm đã được xả trong R
Khi ghi vào tệp, tôi đã học được cách khó để xóa bộ đệm đầu ra, nếu không tất cả các phiên cược sẽ được tắt cho dù dữ liệu đã được lưu chưa. Tuy nhiên, điều này có thể dẫn đến một số thời gian chờ đợi rất dài trong khi bigmemory
làm điều của nó (nhiều phút). Tôi không biết tại sao điều này xảy ra - nó không phải lúc nào cũng xảy ra và nó không dễ tái tạo.
Có cách nào để xác định xem bộ đệm I/O đã được xả trong R, đặc biệt là đối với bigmemory
? Nếu hệ điều hành quan trọng, thì hãy tự do hạn chế câu trả lời theo cách đó.
Nếu câu trả lời có thể được khái quát hóa ngoài bigmemory
, điều đó sẽ tuyệt vời, vì đôi khi tôi dựa vào các chức năng ánh xạ bộ nhớ khác hoặc luồng I/O.
Nếu không có giải pháp tốt để kiểm tra xem bộ đệm đã được xả, có trường hợp nào trong đó có thể giả định rằng bộ đệm đã bị xóa? I E. ngoài việc sử dụng flush()
.
Cập nhật: Tôi nên làm rõ rằng đây là tất cả các kết nối nhị phân. @RichieCotton lưu ý rằng isIncomplete()
, mặc dù tài liệu trợ giúp chỉ đề cập đến các kết nối văn bản. Nó không rõ ràng nếu đó là có thể sử dụng cho các kết nối nhị phân.
Không chắc chắn về việc sử dụng với 'bigmemory', nhưng' isIncomplete' hoạt động cho các kết nối thông thường. –
Cảm ơn! Thông tin trợ giúp rất hạn chế về kết nối chỉ đề cập đến isIncomplete phù hợp cho đầu ra của các kết nối văn bản. Bạn đã có may mắn với các kết nối nhị phân chưa? – Iterator