【发布时间】:2010-09-26 03:18:23
【问题描述】:
An answer (见下文)对 Stack Overflow 上的一个问题提出了一个想法,让我想到了一个很棒的小软件,它可能对到处都是编码员。
我想象的是 RAM 驱动器软件,但有一个关键区别 - 它会镜像我硬盘驱动器上的真实文件夹。更具体地说 - 包含我当前正在处理的项目的文件夹。这样,任何构建都几乎是瞬时的(或者至少快几个数量级)。 RAM 驱动器将在后台仅使用空闲资源将其内容与硬盘驱动器同步。
快速的谷歌搜索没有发现任何东西,但也许我只是不知道如何谷歌。也许有人知道这样的软件?最好是免费的,但合理的费用也可以。
补充: 有人提出了一些我一开始就放弃的解决方案。它们将是(无特定顺序):
- 购买更快的硬盘驱动器(SSD 可能或 10K RPM)。 我不想要硬件解决方案。不仅软件有可能更便宜(免费软件,有人知道吗?),而且它还可以用于硬件修改即使不是不可能的情况下也不受欢迎的环境中 - 例如,在办公室。
- 让 OS/HDD 进行缓存 - 它更清楚如何使用您的空闲 RAM。 OS/HDD 具有通用缓存算法,可以缓存所有内容并尝试预测未来最需要哪些数据。他们不知道对我来说优先级是我的项目文件夹。众所周知,它们并没有真正缓存它。 ;)
- 周围有很多 RAM 驱动器;使用其中之一。 抱歉,那太鲁莽了。只要有一点空闲时间,我就需要将我的数据同步回 HDD。在电源故障的情况下,我可以忍受失去最后五分钟的工作,但不是自上次签到以来的所有工作。
添加了 2: 提出了一个想法 - 使用普通 RAM 驱动器和后台文件夹同步器(但我的意思是 background)。有这样的吗?
添加 3: 有趣。我刚刚在工作中试用了一个简单的 RAM 驱动器。重建时间从 ~14 秒下降到 ~7 秒(还不错),但增量构建仍然在 ~5 秒 - 就像在 HDD 上一样。任何想法为什么?它使用aspnet_compiler 和aspnet_merge。也许他们对其他地方的其他临时文件做了一些事情?
已添加 4: 哦,不错的新答案集! :) 好的,我为所有反对者提供了更多信息。 :)
产生这个想法的主要原因之一不是上述软件(构建时间为 14 秒),而是我当时无法访问的另一个软件。这个另一个应用程序有一个 100 MB 的代码库,它的完整构建大约需要 5 分钟。啊,是的,它在Delphi 5,所以编译器不是太先进。 :) 将源放在 RAM 驱动器上会产生很大的不同。我想不到一分钟就知道了。我没有量过。所以对于那些说操作系统可以更好地缓存东西的人——我不敢苟同。
相关问题:
第一个链接的注意事项: 它链接的问题已被删除,因为它是重复的。它问:
在编译代码时你在做什么?
我链接到的Dmitri Nesteruk 的答案是:
我几乎立即编译。部分原因是我的项目很小,部分原因是使用了 RAM 磁盘。
【问题讨论】:
-
为什么不能在办公室进行硬件改造?如果价值存在,我们总是有一些可用的预算。此外,众所周知,我用自己的钱购买硬件,只是为了让我的工作体验更愉快。
-
在我的例子中,构建需要大约 15 秒的增量和大约 30 秒的完整。真的不是什么可以说服老板的东西。但是如果是1s就好了。 :) 我不想把自己的钱投资在这上面。此外-那里有很多人,每个人都有不同的故事。许多人可能也使用过这个。
-
如果我是你的老板,我会对将你的构建时间从 15 秒/30 秒缩短到 1 秒的方法感兴趣。 任何可察觉的延迟都是改进的机会。任何延迟都会直接影响开发人员的工作效率。
-
@Jay 不幸的是,在许多公司中,根据会计结构,设备和工程时间是完全不同的成本,即使工程费用巨大,在硬件上廉价往往也具有经济意义时间。老板可能无法控制它。
-
一开始的答案链接失效了,能不能更新一下?
标签: caching compilation directory ramdrive