簡體   English   中英

當文件在 C++ 中打開並開始讀取時,整個文件是從硬盤加載到 RAM 還是一個塊一個塊地加載到 RAM 中?

[英]When the file is opening in C++ and we start reading , does the whole file load to RAM from hard disk or just a block by a block?

當文件在 C++ 中打開並開始讀取時,整個文件是從硬盤加載到 RAM 還是一個塊一個塊地加載到 RAM 中?

您決定將多少讀入 RAM。 當您執行“getline”或將數量讀入緩沖區時,您正在將其從磁盤移動到 RAM。 如果文件格式是“可流式”的,您可以一次處理文件的小塊,並且仍然可以執行整個操作。 您需要在大部分文件中讀取某些文件格式以執行操作,這可能由於多種原因而成為問題。

  1. 如果一個文件必須在處理開始之前完全加載,你不能在獲得前幾個字節后立即開始工作。 這是一個完全順序的操作,比同時處理和加載要慢。

  2. 正如您所提到的,RAM 比磁盤小,但即使文件可以放入 RAM 中,這些天計算機也經常執行多任務。 當相同的操作可以用幾千字節完成時,擁有 1 個進程需要 4 GB 的 RAM,這可能會導致機器上的其他進程出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM