作者HZYSoft (pcman.ptt.cc)
看板PCman
标题Re: [建议] pcman 线上patch功能
时间Tue Mar 23 22:24:40 2004
※ 引述《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
1F:→ honst37:收录至 z-10-15 !! 推 203.217.100.80 03/23
2F:→ SStar:原来是这个样子啊... 推140.113.236.231 03/23
3F:→ Nakoruru:可否提供设定值转换程式?供升级时用的 推 218.175.28.81 03/23
4F:→ Nakoruru:或者提供"汇出设定值成文字档"与汇入功能 推 218.175.28.81 03/23
5F:→ Nakoruru:这应能兼顾升级方便与快速(亦方便user除错 推 218.175.28.81 03/23
6F:→ pptpb:这样每次升级就要换一次转换程式啦 :~ 推 140.113.92.21 03/23
7F:→ pptpb:推「让人忍不住把他写成这样」 :D 推 140.113.92.21 03/23
8F:→ sicao:好龟毛 龟毛好~XD 推 61.224.7.211 03/23
9F:→ Nakoruru:第二个方案(汇出、汇入)就不用啦~ 推 218.175.28.81 03/24