项目很大, 文件很多, 而且由于开始时编码的一些不是很合适的设计, 规划, 导致了现在每次编译的时间很长. 我的机器配置 P4 D 2.8G/1G, rebuild all 需要 12 分钟. 当然, 我也不会没事就 rebuild all. 可问题是. 头文件被依赖的太多. 随便改动一个头文件. 几乎所有的文件都在编译.
在现阶段我不能去改编码的设计, 我能做的只能是想想办法提高本机的编译速度. 想到的就是 Ram Disk. 我不是有 1G 内存嘛. 平常使用也不超过 512M, 查看了一下编译生成的临时文件 400M 左右. 我可以创建一个 450M 的 Ram Disk. 似乎是个不错的主意.
找 Ram Disk, 此前在论坛里一直有人推荐 RamDiskNT 什么的. 我记得也下载过. 但安装/重启很麻烦. 我觉得那个不是我想要的. 而且我觉得一个软件的名称加上个后缀 NT 啊, XP 啊, 第一感觉首先就打了一个折扣. 别人出来 NT, 你就加个 NT, 出来 XP, 你就加个 XP, 那现在你是不是再加上个 Vista? 你到底有没有准谱啊? 感觉这样的软件公司不是做程序的, 是来做秀的.
上网搜索. 我找到了Gavotte Ram Disk, 虽然是一个程序员在微软的驱动例子程序上修改的. 但别人评论很不错. 稳定. 而且安装/卸载/调整容量等操作都不用重启系统. 很绿色啊.
安装, 设置容量为 450M, 设置完了之后, 从任务管理器上直接就看到内存占有的变化, 到了 800M 了. 设置 vc6 的编译路径. rebuild all. 结果令人很失望. 编译花了 10 分钟. 速度提升很有限. 分析一下原因. 编译的时候 CPU 一直占用 50%. 因为是超线程. 其实也就是只用一个 CPU. 这个没有办法. vc6 太老了. 记得 vc2005 可以同时编译两个工程, 但也仅限于两个工程. 而不是一个工程中的两个文件. 另一个因素就是编译的大部分时间还是花在编译器的那些操作, 词法/语法/语义分析, 优化等. 使用 Ram Disk 只是在最后写 obj 文件的时候有用处. 而 OBJ 文件并不是那么大, 也就 300M+, 所以效果不明显了.
我不甘心. 因为 vc 在编译的时候需要在 %Temp% 目录生成一些文件, 我又将临时文件目录设置到 Ram Disk, 再次测试, 几乎没有什么提升. 还是 10 分钟. 最后一招, 把源码的目录也放到 Ram Disk. 编译. 我放弃了. 还是 10 分钟.
是谁说用 Ram Disk 可以提高编译速度的? 或者我有什么没有考虑到?