作者supersax ((/‵Д′)/~ ╧╧)
看板Free_box
標題[討論] 觀察使用DSLite硬碟讀寫次數的方法
時間Fri Apr 6 20:29:59 2007
以下為轉帖@ @"...
我比較好奇的是真的有這麼誇張嗎= ="
DSLite已經用好幾年了的說...
=========================================================
一、首先, 告訴大家如何觀察一個應用程式對硬碟讀取寫入的次數
1.打開工作管理員,點選「選擇欄位」的功能表項目
http://img263.imageshack.us/my.php?image=1273yx7.png
2.把「I/O寫入次數」和「I/O讀取次數」兩個欄位勾起來後按下確定
http://img263.imageshack.us/my.php?image=iogjmg5.png
3.好了,每個程式所對應的硬碟寫入讀取次數就出現了
http://img263.imageshack.us/my.php?image=xfj0.png
二、接著先觀察 DSLite 上傳郵件檔案對硬碟存取的次數
1.一打開 DSLite, 大約讀取硬碟 4 萬次(這跟資料筆數有關, 不多全部只有 1000 筆左
右)
http://img266.imageshack.us/my.php?image=o4ucd8.png
2.如何用 DSLite 寄信就不多做說明, 我們選擇一個 9 MB 左右的檔案, 並按下開始
http://img266.imageshack.us/my.php?image=ulwnp2.png
3.出現這個窗口
http://img266.imageshack.us/my.php?image=suau3.png
4.這時 DSLite 要預先把整封信件編碼好, 再開始寄送, 這個過程讀取硬碟 16 萬次(每
9 MB)
http://img266.imageshack.us/my.php?image=ul20uai2.png
三、再來看 DSLite 下載郵件又是如何存取硬碟的
(如果因為演示圖片太大被縮小了請點一下圖片, 它就會還原比例)
1.重新打開 DSLite, 讀取次數如之前 4 萬次, 寫入 4 萬多次不知為何,
猜測是建立 .bak 檔的時候寫的
http://img263.imageshack.us/my.php?image=lcp0.png
2.選擇下載一個 20 MB 的信件檔。下載到 89% 的時候, 寫入次數到達了 5 萬多次,
也就是每下載 10 多 MB的郵空檔, 就要寫入約 1 萬次
http://img263.imageshack.us/my.php?image=ijdu5.png
3.下載到 99% 的時候,就是大家所知道會停頓很久 CPU 飆高之時,
此時 DSLite 在做什麼呢? 原來它剛剛只是把信件下載到了 Temp 資
料夾, 此時要把信件裡的附件檔(因為附件一般經過 BASE64 的編碼)
解碼到目標資料夾。可是同樣地它沒有做緩衝區, 每不到 100 Byte
解碼就直接輸出, 此時硬碟寫入次數會非常之快地的飆高。下面這張
圖解信解到一半時已達到 269 萬次:
http://img263.imageshack.us/my.php?image=99fy0.png
4.下面這張圖出現 Stream Write Error 的錯誤, 因為我不敢讓它寫到
硬碟, 所以存放在 Ramdisk, 而 R 槽只剩下 9 MB 的容量, 所以顯示出
這個寫不進去了的錯誤. 也就是說, 解信每解 9 MB就要寫入硬碟近 500
萬次, 有人會說硬碟本來就是消耗品, 這是合理的開銷, 可是, 它可以去
比較其它的下載軟體, 是不是會這麼誇張, 就連 BT 也比不上. 明顯這是
一個軟體設計失當, 對硬碟的傷害無以復加
http://img263.imageshack.us/my.php?image=1905bg1.png
如果喜歡用 DSLite 上傳或下載郵空, 請看完之後再好好考慮吧
另外資料筆數可別放太多筆, 每次打開 DSLite 沒幾筆就要多讀個幾萬次了
建議大家用SMG吧.........
=====================================================================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.171.178.221
1F:推 WGA:恩,這是smg作者寫的 04/06 20:47
2F:→ HDTV:信者恆信,不信者恆不信 04/06 20:53
3F:推 snakeONE:好像在洪爺爺看過一樣的東西.... 04/06 21:30
4F:推 CaMper8850:孩子的學習... 04/06 21:58