代码之家  ›  专栏  ›  技术社区  ›  Dana the Sane

如何避免在网络驱动器上编辑代码时出现停顿?

  •  4
  • Dana the Sane  · 技术社区  · 17 年前

    我计划在家里做更多的编码,但为了做到这一点,我需要能够编辑我们开发服务器上Samba驱动器上的文件。我在使用几个编辑器时遇到的问题是,网络延迟会导致编辑器长时间锁定(Eclipse、TextMate)。一些编辑器比其他编辑器更好地应对了这一点,但我可以做任何文件系统或其他调整来尽量减少延迟的影响吗?

    还有几点:

    • 有一项政策禁止在个人机器上保存公司数据,所以我想避免在本地检查代码。
    • 挂载是通过PPTP VPN连接进行的。
    • 安装到Linux或OS X客户端
    4 回复  |  直到 8 年前
        1
  •  9
  •   Chris Hanson    17 年前

    使用源代码控制系统Subversion、Perforce、Git、Mercurial、Bazaar等。所以你永远不会在共享服务器上编辑代码。相反,您应该编辑本地工作区,并将更改提交到位于网络上的存储库。

    此外,说服您的公司调整其政策,允许在个人计算机上使用公司代码 如果 它在加密卷上。您可以使用的加密磁盘映像是 不重要的 使用磁盘实用程序创建,并且可以使用强加密。您可以通过不将加密密码存储在密钥链中,而是在每次装载加密卷时键入它来获得更高的安全性;这意味着,即使您的本地用户帐户受到威胁,只要您没有挂载卷,其他人就无法挂载它。

    我在咨询时一直这样做,一旦我解释了事情是如何运作的,我的客户——其中一些人对公司代码有类似的规则——都没有遇到过问题。(我认为他们中的一些人甚至开始在办公室内使用加密磁盘映像。)

        2
  •  5
  •   Kornel    17 年前

    Remate 插件只是禁用了这个可怕的焦点刷新功能。

    下载、解压缩、双击并从“窗口”菜单中选择“重新聚焦时禁用刷新”(您可以通过右键单击抽屉中的项目手动刷新)。瞧!

        3
  •  1
  •   Siyual Ranjit Singh    9 年前

    如果你从个人电脑访问数据,它就在你的RAM中,所以我们假设你无法将其存储在硬盘、软盘、U盘等上。

    您的解决方案是RAM驱动器。使用您喜欢的任何方法(我建议使用源代码管理)将您需要编辑的文件复制到那里,然后您就可以毫无延迟地编辑它们。完成后,将它们提交回服务器。

    如前所述,您的编辑器可能正在缓存对临时目录的更改,甚至可能缓存交换文件(如果它在内存中,则可以将其交换出去)。解决方案是获得一个更大的RAM驱动器,并在RAM驱动器中运行一个虚拟机。不确定你运行的是什么操作系统,但如果你所做的只是编辑源代码,你可以安装大多数操作系统。

    如果你没有足够的RAM,那么就买一个千兆字节的i-RAM固态硬盘并卸下电池,这样当你断电时,它就会失去一切。

    将VMWare设置为不允许操作系统交换任何虚拟机。在硬盘上保留一个基准VM,并在启动之前将其复制到RAM驱动器。然后,您可以像使用硬盘驱动器一样使用VM中的硬盘驱动器,即使它是RAM。

    在关闭电源之前,对RAM驱动器进行安全擦除可能是个好主意。还要记住,他们发现,如果你在将RAM芯片从正常工作的计算机中取出之前对其进行超冷处理,并足够快地将其放入新计算机中,数据可能仍然完好无损。

    我想这一切都归结为这项政策有多详细,以及如何解释。

    祝你好运

        4
  •  0
  •   Damien B    17 年前

    简短的回答:你不能耍花招。CIFS真正面向局域网,具有相当平静的传输,因此您通过VPN访问共享时不会出现间歇性延迟。编辑器在某个时候需要在阻塞IO时访问文件,因为这样做没有任何意义。

    您可以切换编辑器并使用Emacs+ TRAMP 它适用于处理远程文件。