精華區beta PCman 關於我們 聯絡資訊
※ 引述《SStar (星星)》之銘言: : 我覺得最方便的方法應該是 : 把使用者會修改的設定檔都分出來 : 就像現在的config資料夾一樣 : 這些config檔的格式都固定 : 然後以後有更新的時候 : patch檔就只包含修改的檔案 : (不包含config檔) : 接著下載patch檔覆蓋原來的檔案 : 如此一來使用者的設定都還存在 : 也不用使用麻煩的更新程式了 會造成這種問題其實還是歸咎到 PCMan 的特殊設計方式 其他軟體設定檔多半可以沿用是因為採用文字格式 也就是Wnidows 3.1時代的 ini 檔,比較先進的軟體可能採xml格式(少見) 至於 PCMan 為了貪圖啟動快速,採用非文字完全二進位格式, 所以儲存的資料雖然類似,各位可以去比較,PCMan的設定檔應該遠比同類 軟體來的小,所以所有設定值可以瞬間載入完畢,這是為了啟動快速還有省記憶體 別人用ini載入設定值是要先傳入字串,系統幫他們在設定檔中搜尋,找到 相同的項目,再讀出設定值字串,重新轉換成數字或什麼的...頗為麻煩 至於PCMan則是把所有設定值能夠一次讀取的純數值部分都放在一起 一次就直接把全部設定載入完畢,沒有任何搜尋動作,所以很快, 而由於不是轉成文字格式儲存,檔案大小更小,別人都是好幾KB,PCMan只不到1KB 我承認這樣的設計方式有缺失,因為內部格式一旦變動設定檔就無法讀取 這是致命缺點,但是啟動速度快又可一次載入,讓人忍不住把他寫成這樣 :) 我猜大概所有教過程式語言的教授看到我的程式碼都會罵我,寫這什麼鬼 既不安全又不合規定,哪有人C++程式這樣寫的? 沒錯! 我用的寫法完全不標準 使用了非常詭異的方式,刻意有計畫的安排物件在記憶體當中的配置方式, 以便於我能夠用最低階最快速的方式載入和複製,但完全破壞了物件導向程式的優美 儘管如此,還是一直維持這樣的設計是因為,經過實測他載入真的很快 大概沒那個寫C++的人會寫出這麼醜的東西,用低階語言的方式寫優美的高階C++程式 沒辦法,誰叫我不是受正規訓練的,自己看書亂學倒是弄出一堆書上也不建議的作法 不過這個設計方式爛是爛,速度卻還滿快的,而對於PCMan原本的設計精神來說, 啟動速度一直是很重要的 :) 所以這部分可能很難,如果要相容舊版格式, 那這種可以高速載入的特性可能會喪失,當然這還是我太放不開...不知道在堅持啥 即使是變慢,其實user也感覺不到吧? 而且設定檔就算變大,耗用的硬碟空間還是 一樣多,並沒有實際上的差別,不過,算我固執吧! 對軟體還是有些偏執^^ 有些事情就是很堅持但也不是很確定為什麼一定要這樣... :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.59.3