Re: [問題] buf = new buf[4096]

看板C_Sharp (C#)作者時間13年前 (2011/10/21 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《garmina1985.bbs@ptt.cc (garmina1985)》之銘言: > (已爬文) > 各位前輩,最近在寫C#的壓縮程式(利用SharpZipLib) > 裡面有一行程式是byte[] buffer = new byte[4096] > 想請問這樣設計是有甚麼目的麻 ? > 為什麼要把buf大小剛好設成4K byte呢 ? > 請前輩指教,感謝。 因為OS中記憶體的分配多數是以4096為一個基本單位,但by OS不同可能會不一樣 但脫不了 1024的倍數,你可以試著建立一個文字檔,什麼內容都不需要有, 就會有4k(XP)了 不過如果要控制的內容確定都會小於4K的話,建議以1024為buffer單位也不錯 如果內容非常大,你可以加大buffer的大小,但建議以4096的倍數為單位 這樣可以加快IO的速度 -- ◣ │ 我說拔辣!!◣╭─────────╮ 香蕉!!\ ◢ˋ ˋ ˊ▊ ●◤◥ ◤│ IP:140.123.174.1▂▃▅▆▇ ◤◥" ˊ " " ▋╯ ▁▃ DN:bala.twbbs.org│ ╰◢" ▂▃▄▅▆▇█ ╰─────────╯《中正資管‧芭樂的故鄉》 FR: 114-32-245-244.HINET-IP.hinet.net
文章代碼(AID): #1Ee67UXe (C_Sharp)
文章代碼(AID): #1Ee67UXe (C_Sharp)