代码之家  ›  专栏  ›  技术社区  ›  user90150

Emacs 23.1.50.1在Windows XP上随机挂起6-8秒

  •  19
  • user90150  · 技术社区  · 15 年前

    我让EmacsW32 23.1.50.1 Emacs在我的Windows XP机器上工作。它随机挂起5到8秒,非常令人沮丧。

    有人有解决办法吗?

    我甚至尝试使用GNUftp站点上的EmacsWin32二进制文件(23.1),这也会挂起几秒钟。

    这里有一些著名的ProcessMonitor日志

    晚上10:56:59.9888359 创建文件 C:\usr\spool\mail\ 路径未找到 所需访问:读取数据/列表目录,同步,部署:打开,选项:目录,同步IO非警报,属性:不适用,共享模式:读取,写入,分配大小:不适用

    晚上10:57:55.5073038 查询所有信息文件 C:\emacs.emacs.d\自动保存列表 缓冲区溢出 创建时间:8/27/2009 12:51:26 pm,上次访问时间:1/5/2010 10:54:40 pm,上次写入时间:1/5/2010 10:08:15 pm,更改时间:1/5/2010 10:08:15 pm,文件属性:d,分配大小:0,结束文件:0,链接数:1,删除挂起:false,目录:true,索引号:0x10000001f702,easize:0,访问:读取属性,同步,位置:0,mODE:同步IO不报警,对齐要求:字

    7 回复  |  直到 9 年前
        1
  •  25
  •   luapyad    15 年前

    我在WinXP上使用emacsw32 23.1.50时遇到了完全相同的问题。我所做的一个显著改进(无论如何对我来说)是在 .emacs 文件:

    ; try to improve slow performance on windows.
    (setq w32-get-true-file-attributes nil)
    

    似乎这个变量在最近被更改为默认值“true”,并且在文件访问方面会导致一些慢下来的问题。我偶尔还会有一些随机挂起(可能是因为我的 Emacs 但现在好多了。

        2
  •  18
  •   statkwon    12 年前

    请尝试在“服务”控制面板中停止Netlogon服务。这解决了我的问题。看这篇优秀的文章 http://www.hydrus.org.uk/journal/emacs-netlogon.html 这使我免于痛苦。

    这只适用于一小部分(但还在增加?)用户组:

    • 使用公司发行的笔记本电脑
    • 使用Windows 7
    • 为R编辑器使用Emacs
    • 突然看到她的电子计算机工作很慢
        3
  •  5
  •   Joe V.    12 年前

    我也遇到过类似的问题,并追踪到Windows上的网络超时。在我的特殊情况下,这是由于ido.el,它保存了目录内容的缓存列表。在启动时,IDO试图检查缓存目录,其中包括我的家庭网络和工作网络上的网络共享“无论我在哪个网络上,总是有一些不存在的主机。

    因为我的问题源于IDO(排序),所以我的解决方案是将IDO max dir file cache设置为0(通过自定义变量或init.el),然后退出emacs,删除~/.emacs.d/.ido.last,然后重新启动emacs。根据我在另一个线程中看到的内容,在尝试删除.ido.last之前确保所有Emacs实例都已关闭是很重要的。可能还有其他的IDO变量需要更改,但是到目前为止,这个解决方案对我有效。

        4
  •  4
  •   Heinzi    15 年前

    如果没有一些调试输出,就很难说出导致延迟的原因。

    由于延迟通常是由IO操作超时引起的,我建议运行 Process Monitor 查看Emacs挂起时的操作。

        5
  •  3
  •   Karim Ahmed    13 年前

    我有Windows7,这发生在我身上,因为我使用的是经典的WindowsUI,一旦我改为默认主题,它工作得很好,也许主题服务也与此有关,所以如果你停止它,试着运行它。

        6
  •  2
  •   Mike    13 年前

    在禁用全局自动恢复模式后,系统的I/O要少得多。对我来说,这似乎解决了问题。

        7
  •  1
  •   sturgman    9 年前

    这与禁用Netlogon应答有关。原来关闭Netlogon会给我带来网络驱动器的问题,因此禁用它是一件麻烦的事情。我发现很长一段时间我把我提供的DNS切换到了谷歌的公共DNS。这在公司领域是一个非常糟糕的想法。我把它切换回自动检测DNS,问题就消失了。