Re: [問題] delete 不即時?
※ 引述《justdemon (人生的轉捩點)》之銘言:
: 標題: [問題] delete 不即時?
: 時間: Wed Jun 11 13:56:13 2008
:
:
:
: delete這個指令 是否一定會即時釋放記憶體呢??
:
:
: 我遇到了記憶體吃到swap的問題
:
: 把程式用getchar分段來看記憶體使用的狀況
:
: 發現有時候我delete之後 記憶體並沒有即時的被釋放出來
:
: 造成吃到swap的情況
:
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.112.231.98
: 推 Bencrie:跟OS管理記憶體的方式有關。 06/11 14:02
^^^^^^^^^^^^^^^^^^^^^^^^
我想請問的是, delete 真的釋放 memory 的時間點(即不占有 physical memory),
是否"也"與其標準函式庫的實作有相關(如 free, malloc ... 等). 而不是只和
OS 管理記憶體的方式有關
感謝感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.243.43
推
04/21 09:28, , 1F
04/21 09:28, 1F
→
04/21 09:29, , 2F
04/21 09:29, 2F
→
04/21 09:30, , 3F
04/21 09:30, 3F
→
04/21 09:31, , 4F
04/21 09:31, 4F
→
04/21 09:31, , 5F
04/21 09:31, 5F
但是標準函式庫在實作時, 並不是在你 new 時就會使用 system call 來只向作業系統
申請所需要的 memory. 而是一次申請一大塊, 自己有其管理機制. 因此 delete 時也不
見得會馬上使用 brk 等 system call 來調整其 virtual address space.
所以我認為跟 Kernel 及所採用的 C Run-Time Liabrary 都有關係
※ 編輯: operationcow 來自: 140.112.243.43 (04/21 10:03)
推
04/21 09:50, , 6F
04/21 09:50, 6F
不太懂你的意思, 實作應該是沒有規定應該要怎麼做. 至少在我看的 c spec 是沒有
(也許是我看得不夠仔細), 但我想一般是不會頻繁的使用 system call 來調整 memory
的使用.
※ 編輯: operationcow 來自: 140.112.243.43 (04/21 10:11)
→
04/21 11:18, , 7F
04/21 11:18, 7F
→
04/21 11:18, , 8F
04/21 11:18, 8F
請問 t 大, 如果是以 4k 為單位(如你舉的例子), 剛好是作業系統常見的一個 page 的
長度, 在 CRT 實作中, 是否可以有以下方式以釋放 virtual address space??
(欲在程式裡面把 heap 後面 16k 的資料直接往前移動 4k, CRT 所作步驟 a.
更改 CRT 管理 heap 的資料結構, b. 將後面 16k 的資料往前 copy 移動 4k, 其中 b
其實只要 作業系統最佳化時察覺到/CRT向系統申請 直接更改 MMU 的對應即可)
感謝感謝
※ 編輯: operationcow 來自: 140.112.243.43 (04/21 11:40)
→
04/21 11:27, , 9F
04/21 11:27, 9F
→
04/21 11:36, , 10F
04/21 11:36, 10F
→
04/21 11:37, , 11F
04/21 11:37, 11F
→
04/21 11:59, , 12F
04/21 11:59, 12F
→
04/21 11:59, , 13F
04/21 11:59, 13F
→
04/21 12:00, , 14F
04/21 12:00, 14F
→
04/21 12:00, , 15F
04/21 12:00, 15F
→
04/21 12:01, , 16F
04/21 12:01, 16F
→
04/21 12:31, , 17F
04/21 12:31, 17F
→
04/21 12:32, , 18F
04/21 12:32, 18F
→
04/21 12:33, , 19F
04/21 12:33, 19F
沒錯, 你說的對, 在這個 model 底下的確無法完成 update 所有指標這個 issue,
受教了 <(__)>
推
04/21 12:36, , 20F
04/21 12:36, 20F
→
04/21 12:36, , 21F
04/21 12:36, 21F
※ 編輯: operationcow 來自: 140.112.243.43 (04/21 14:33)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章