Có bất kỳ tăng tốc hệ điều hành (Linux) nào khi viết một bộ đệm byte cố định cho nhiều bộ mô tả tệp không? Khi viết nhiều bộ đệm cho một bộ mô tả tập tin có thể sử dụng writev(2)
, vì vậy tôi tự hỏi nếu có bất kỳ tương tự này hoặc nó phải được thực hiện bởi nhiều cuộc gọi sys.Viết cho nhiều tập tin mô tả
9
A
Trả lời
2
Tôi không biết syscall nào trên Linux. Danh sách đầy đủ của họ được đưa ra trong trang man page syscalls(2).
Và tôi sẽ không bận tâm nhiều đến thế. Để truy cập tệp, nút cổ chai thực là đĩa ...
0
Kết hợp vmsplice
và tee
nên thực hiện những gì đã yêu cầu, tuy nhiên, nhiều rào cản người dùng/không gian hạt nhân chỉ được vượt qua một lần.
+0
Cảm ơn bạn, nhưng nó chỉ dành cho đường ống. – Cartesius00
1
tôi đã không sử dụng nó nhưng điều này có thể làm việc: lio_listio
Các vấn đề liên quan
- 1. git push .git/tập tin mô tả
- 2. python đóng tập tin mô tả câu hỏi
- 3. Detect mô tả tập tin NUL (isatty là giả mạo)
- 4. ftell trên một bộ mô tả tập tin?
- 5. Chuyển hướng Bash với bộ mô tả tập tin hoặc tên tập tin trong biến
- 6. làm thế nào để viết mô tả cho phương pháp
- 7. Bash thay thế quá trình kép cho bộ mô tả tập tin sai
- 8. Tạo một chủ đề mới Mô tả tập tin trùng lặp và bộ mô tả socket trong Linux?
- 9. MSBuild - Viết các ký tự thoát cho các tập tin
- 10. Viết tập tin lớn
- 11. lấy Process Mô tả Thông tin
- 12. Viết nhật ký vào tập tin
- 13. Hai bộ mô tả tập tin từ điểm quá trình khác nhau để cùng entry trong bảng tập tin mở
- 14. Mô tả cho Minecraft Renderengine
- 15. Phạm vi mô tả tập tin trên Linux 64-bit là gì?
- 16. Viết vào tập tin (Prolog)
- 17. Viết xmlwriter vào tập tin
- 18. Tôi có hiểu cách các trình mô tả tập tin Unix hoạt động trong C không?
- 19. Fopen có tạo ra một bộ mô tả tập tin không?
- 20. Bắt Errno 9: mô tả tập tin xấu trong ổ cắm python
- 21. Trình mô tả tập tin java của tôi sẽ "xấu" và tôi không biết tại sao
- 22. Có "Bộ mô tả tập tin sai" khi sử dụng tăng :: asio và boost :: thread
- 23. Giới hạn mô tả tập tin linux hoạt động như thế nào?
- 24. Async chờ trên bộ mô tả tập tin bằng cách sử dụng Boost Asio
- 25. Ổ cắm Python (Bộ mô tả Tập tin Lỗi Lỗi Ổ cắm)
- 26. Không thể đọc mô tả đầu vào tập tin kênh từ bưu kiện
- 27. Viết thư cho một tập tin trong Perl
- 28. Viết cho một tập tin từ plugin WordPress của tôi
- 29. Viết một mảng NSData vào tập tin
- 30. viết một tập tin rdata từ
Ngoại trừ việc viết không đi vào đĩa; tất cả 'write' làm là sao chép dữ liệu vào một bộ đệm trong hạt nhân. (Có những lựa chọn để thay đổi điều này, nhưng đây là hành vi mặc định.) Và câu hỏi của OP là một câu hỏi hay, vì nếu có câu hỏi như vậy, nó sẽ có nghĩa là một bản sao, và có lẽ chỉ có một bộ đệm trong nhân (ít tài nguyên hơn) được sử dụng trong hạt nhân). –
Tôi đồng ý và tôi biết điều đó, nhưng khi bạn có đủ RAM để tất cả các tệp nóng vừa với nhau, bạn không nên lo lắng nhiều. Tôi không nghĩ rằng hạt nhân có thể chia sẻ các phân đoạn của các tập tin giữa các tập tin riêng biệt. –
@JamesKanze: Tôi không chắc chắn rằng bộ đệm chia sẻ sẽ hoạt động. Nếu bạn có hai tệp, một tệp trên SSD và một tệp trên một ổ đĩa mạng ở xa thì SSD có nên đợi ổ đĩa mạng không? Tùy thuộc vào tình hình, bạn có thể muốn có ít nhất một tập tin được viết thành công thay vì hai nửa ghi. –