我需要在Linux下使用多個線程讀取單個文件。 只有閱讀操作,不需要書寫。 文件讀取不需要每次讀取整個文件。 它需要每次讀取文件的一個或多個部分。 我預先存儲了每個部分的偏移量。 該文件太大而無法放入主內存。如何提高多線程文件讀取的性能?
因此,例如,許多用戶想讀取這樣的文件。 我使用線程或進程來讀取文件以回答用戶請求。 在Linux下會發生什麼? 所有的讀取操作都會排隊嗎? 操作系統會一一完成文件讀取? 是否有可能提高這些操作的性能?
我想實現一個簡單的倒排索引用於信息檢索。 我把字典放在內存中,並在文件中發佈列表。 每個文件都包含一段索引。 在字典中,我可以存儲偏移量等指向該單詞發佈列表的位置。 當100個用戶想要在一秒鐘內搜索某些內容時,他們會提交不同的查詢。 因此每個閱讀將會讀取文件的不同部分。
的是我說錯了,當我問緩存未命中。文件閱讀不需要每次都讀取整個文件。它需要每次讀取文件的一個或多個部分。我事先存儲每個部分的偏移量。 – 2009-09-24 07:59:55