当前位置:  开发笔记 > 运维 > 正文

用于编译的RAM驱动器 - 有这样的事吗?

如何解决《用于编译的RAM驱动器-有这样的事吗?》经验,为你挑选了2个好方法。

Stack Overflow上的一个问题的答案(见下文)给了我一个很棒的小软件的想法,这对于所有编码器来说都是非常宝贵的.

我正在想象RAM驱动器软件,但有一个关键的区别 - 它将镜像我硬盘上的真实文件夹.更具体地说 - 包含我正在处理的项目的文件夹.这样,任何构建几乎都是瞬时的(或者至少快几个数量级).RAM驱动器将仅使用空闲资源将其内容与后台硬盘驱动器同步.

一个快速的谷歌搜索没有透露,但也许我只是不知道如何谷歌.也许有人知道这样的软件?最好免费,但合理的费用也可以.

补充:已经提出了一些我在一开始就丢弃的解决方案.他们将(没有特别的顺序):

购买更快的硬盘驱动器(SSD可能或10K RPM).我不想要硬件解决方案.不仅软件有可能更便宜(免费软件,任何人?),但它也可以用于硬件修改不受欢迎的环境,例如在办公室.

让OS/HDD进行缓存 - 它更清楚如何使用你的空闲RAM.OS/HDD具有通用缓存算法,可以缓存所有内容并尝试预测将来最需要哪些数据.他们不知道对我来说优先级是我的项目文件夹.而且我们都知道得很清楚 - 无论如何他们并没有真正地缓存它.;)

周围有很多RAM驱动器; 使用其中之一.对不起,那是鲁莽的.只要有一点空闲时间,我就需要将数据同步回硬盘.在电力故障的情况下,我可以承受失去最后五分钟的工作,但不是因为我上次检查后的所有事情.

补充2:出现了一个想法 - 使用普通的RAM驱动器加上后台文件夹同步器(但我的意思是背景).有这样的事吗?

补充3:有趣.我刚刚尝试了一个简单的RAM驱动器.重建时间从大约14秒下降到大约7秒(不差),但增量构建仍然在~5秒 - 就像在HDD上一样.有什么想法吗?它使用aspnet_compileraspnet_merge.也许他们在其他地方做其他临时文件?

补充4:哦,很好的新答案!:)好的,我为你所有的反对者提供了更多的信息.:)

这个想法的主要原因之一不是上述软件(14秒构建时间),而是另一个我当时无法访问的软件.这个其他应用程序有100 MB的代码库,其完整版本大约需要5分钟.啊,是的,它在Delphi 5中,所以编译器不太先进.:)将源放在RAM驱动器上导致了巨大的差异.我想,我得到它的时间不到一分钟.我没有测量过.因此对于所有那些说操作系统可以更好地缓存内容的人 - 我会乞求不同.

相关问题:

RAM磁盘用于加速IDE

关于第一个链接的注意事项: 它链接的问题已被删除,因为它是重复的.它问道:

你的代码编译时你做了什么?

我联系的Dmitri Nesteruk的答案是:

我几乎立即编译.部分原因是我的项目很小,部分原因是因为使用了RAM磁盘.

SCdF.. 17

在Linux中(你从未提到过你所使用的操作系统,所以这可能是相关的)你可以从RAM创建块设备并像任何其他块设备(即HDD)一样安装它们.

然后,您可以创建在启动/关闭时以及定期复制到该驱动器和从该驱动器复制的脚本.

例如,你可以设置它,所以你有~/code~/code-real.您的RAM块~/code在启动时安装,然后从~/code-real(在标准硬盘驱动器上)的所有内容都被复制.在关闭时一切都将被复制(rsync的 "d会更快)从后~/code~/code-real.您可能也希望该脚本定期运行,因此在发生电源故障等情况下您不会失去太多工作.

我不再这样做了(当9.5测试版很慢时,我将它用于Opera,不再需要了).

以下是如何在Linux中创建RAM磁盘.



1> SCdF..:

在Linux中(你从未提到过你所使用的操作系统,所以这可能是相关的)你可以从RAM创建块设备并像任何其他块设备(即HDD)一样安装它们.

然后,您可以创建在启动/关闭时以及定期复制到该驱动器和从该驱动器复制的脚本.

例如,你可以设置它,所以你有~/code~/code-real.您的RAM块~/code在启动时安装,然后从~/code-real(在标准硬盘驱动器上)的所有内容都被复制.在关闭时一切都将被复制(rsync的 "d会更快)从后~/code~/code-real.您可能也希望该脚本定期运行,因此在发生电源故障等情况下您不会失去太多工作.

我不再这样做了(当9.5测试版很慢时,我将它用于Opera,不再需要了).

以下是如何在Linux中创建RAM磁盘.



2> Adam Davis..:

令我感到惊讶的是,有多少人认为操作系统在确定缓存需求方面可以比在这种专门案例中做得更好.虽然我没有这样做进行编译,但我确实为类似的过程做了这件事,最后我使用了带有自动同步脚本的RAM磁盘.

在这种情况下,我想我会选择一个现代的源控制系统.在每次编译时,它会自动检查源代码(如果需要,沿着实验分支),这样每次编译都会导致数据被保存.

要开始开发,请启动RAM磁盘并拉出当前基准线.进行编辑,编译,编辑,编译等 - 一直为您保存编辑.

在开心时做最后的检查,甚至不需要涉及常规硬盘驱动器.

但是有一些背景同步器可以自动化 - 问题是它们也不会针对编程进行优化,并且可能需要偶尔进行完整的目录和文件扫描以捕获更改.源代码控制系统正是为此目的而设计的,因此即使它存在于您的构建设置中,它也可能会降低开销.

请记住,在停电的情况下,后台同步任务未定义.如果出现问题,您最终必须弄清楚保存了什么以及未保存的内容.使用定义的保存点(在每次编译时,或者手动强制执行),您都会非常清楚它至少处于您认为可以编译它的状态.使用VCS,您可以轻松地将其与之前的代码进行比较,并查看您已应用的更改.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有