如何將大型程式寫入記憶體

發布 科技 2024-07-27
13個回答
  1. 匿名使用者2024-01-31

    這涉及到作業系統的記憶體分配機制,以及可執行檔案的載入機制。 一般來說,在載入可執行程式時,作業系統只會載入第一頁的內容(頁面大小可以參考4K左右,因作業系統而異),然後根據程式執行的PC指標連續載入或跳過所需的**頁面; 當記憶體不足時,一些“過時”的頁面會從記憶體中換出,以便為以後的載入騰出空間。 也就是說,只要在程式執行所需的動態空間+程式執行緒數*頁面大小中還有剩餘空間,作業系統就可以使程式正確執行。

    在一些極端的嵌入式環境中,程式完全直接從片外緩衝區執行,需要更少的交換頁。

  2. 匿名使用者2024-01-30

    誰說程式本身必須寫入記憶體?

    記憶體只載入程式執行所需的變數和機器碼,然後實時載入此步驟的變數和機器碼。 而且,Windows系統有記憶機制,很多暫時不用的資料都會重新釋放,這樣就可以使用大量的記憶體。

    可以簡單理解為,大部分程式都寫在硬碟上,只有變數和少數機器碼,它們總是儲存在記憶體中。

  3. 匿名使用者2024-01-29

    你可以參考這個。

  4. 匿名使用者2024-01-28

    1.如果記憶體大於4G,建議使用64位系統,因為32位系統不能支援4G以上的記憶體。

    2.如果記憶體使用率不高,可以設定和修改。

    3. 在執行中輸入cmd,在開啟的黑框頁面輸入msconfig,出現系統配置頁面。

    4. 單擊“指南”選項卡。

    5. 開啟高階選項。

    6. 選擇處理器數量,然後選擇最大數量。

    7.檢查最大記憶體並將數字調整為最大可調數字。

    8. 最後,儲存並重新啟動。

  5. 匿名使用者2024-01-27

    它不像上面的那麼複雜。

    define x 需要寫入檔案的位元組數。

    char *p;

    p=指向起始位址;

    file *fp;編寫檔案。

    fopen();裡面儲存了。

    fwirte(p,sizeof(char),x,fp);

    fclose()

  6. 匿名使用者2024-01-26

    事實上,這個問題不能用這麼簡單的方式來表述。 下面是乙個簡單的實現,假設檔案大小很小。

    char *buffer;定義緩衝區,pt=指向起始位址。

    memcpy(buffer,pt,x);x是每次讀取的大小,小可以一次讀取! 不要大於緩衝區

    file fp;編寫檔案。

    fopen();裡面儲存了。

    fwirte(buffer,sizeof(char),x,fp);

    pt+=x;指標向後移動。

    然後迴圈讀,寫! 當它結束時判斷! 呵呵! 基本上就是這樣!

  7. 匿名使用者2024-01-25

    直接定義乙個非常大的陣列。

  8. 匿名使用者2024-01-24

    一腳踹開身後的小學生,甩了甩衣袖,大步走出了門。

  9. 匿名使用者2024-01-23

    重新整理資料流嘗試,;

  10. 匿名使用者2024-01-22

    這是你寫的有問題的東西,有些物件使用後沒有釋放,最後導致越來越多的卡住。

  11. 匿名使用者2024-01-21

    您是否在不寫入的情況下釋放系統資源**?

  12. 匿名使用者2024-01-20

    最主要的是你的緩衝區太大了,4*1024*1024是4g。 此快取有點大。 事實上,您可以使用 1024 或 4096。

  13. 匿名使用者2024-01-19

    你把這麼大的檔案讀進記憶體,你當然受不了,你去網上搜尋看看怎麼分割塊,或者把記憶體拆分讀取!

相關回答
6個回答2024-07-27

手機上占用最多記憶體的內容因人而異,具體取決於您的使用習慣和手機上安裝的應用程式。 以下是一些可能占用大量記憶體的常見元素: >>>More

8個回答2024-07-27

Apple 手機沒有儲存卡。 如果你有儲存卡,這意味著你買了乙個山寨卡。 >>>More

25個回答2024-07-27

在記憶體方面,可以通過管家清潔加速功能進行優化: >>>More

16個回答2024-07-27

2G記憶體,XP系統或Win7 32位。

4G或以上,安裝Win7 64位Win8 Win10 >>>More

6個回答2024-07-27

在“手部設定 - 應用程式管理 - 全部”中,單擊每個應用程式,然後選擇“移動到 SD 卡”。 >>>More