标签: compile-mode

emacs编译缓冲区自动关闭?

我希望在没有错误且没有警告的情况下自动关闭编译缓冲区,但是我想在有警告时显示它.有人可以帮帮我吗?来自emacswiki的此代码仅执行第一个要求.怎么改呢?

  ;; Helper for compilation. Close the compilation window if
  ;; there was no error at all.
  (defun compilation-exit-autoclose (status code msg)
    ;; If M-x compile exists with a 0
    (when (and (eq status 'exit) (zerop code))
      ;; then bury the *compilation* buffer, so that C-x b doesn't go there
      (bury-buffer)
      ;; and delete the *compilation* window
      (delete-window (get-buffer-window (get-buffer "*compilation*"))))
    ;; Always return the anticipated result of compilation-exit-message-function
    (cons msg code))
  ;; Specify my function (maybe I …
Run Code Online (Sandbox Code Playgroud)

emacs buffer compile-mode

14
推荐指数
1
解决办法
3898
查看次数

在进程退出并出现错误或警告之前,不要在Emacs中显示*compilation*buffer

我正在寻找一种方法来让Mx编译触发Emacs 编译缓冲区,Mx重新编译或保存脚本上的一些编译仅在编译退出时​​出现错误或警告.

请注意,如果没有[1]中描述的错误或警告,我不会寻找关闭编译缓冲区的方法.不,我希望缓冲区在编译完全完成之前永远不会出现,只有在显示错误或警告时才会出现.

原因很简单:闪烁的编译缓冲区令人不安,并重新排列屏幕上代码的位置.如果你打开保存编译,这会变得更烦人.

编译缓冲区包含许多不同类型的化妆编译过程,以pdflatex所以这将是巨大的,如果它确定缓冲区是否应显示全线工程的功能.

[1] emacs编译缓冲区自动关闭?

emacs buffer elisp process compile-mode

7
推荐指数
1
解决办法
1407
查看次数

仅在发布时编译时抛出OutOfMemoryException

我有一个C#Console应用程序,它分配了许多小对象和数组.这些物体的使用寿命很短,很快就会被垃圾收集器清理干净.对于"你为什么需要分配如此多的短生命对象,你应该避免这种情况"的问题:该程序用于繁重的AI任务,现在没有明显的方法来解决这个问题.

这是问题所在:

如果我在调试模式x86下运行程序它运行正常并在几分钟后完成所有处理.平均而言,它使用300-400 MB.

如果我采用完全相同的程序,但是在发布x86模式下编译并运行它,程序使用的内存会快速达到2GB(几秒钟内),因此它会抛出一个OutOfMemoryException(这是预期的行为,因为它是一个32位应用程序).在发布x64模式下进行编译并不能解决问题,它会快速使用计算机的所有内存(8GB),然后在内存分配失败时崩溃.

我使用SharpDevelop 4.3.3来构建应用程序.调试和发布模式之间的唯一区别是:

  • 优化代码(仅限发布)
  • 检查算术溢出/下溢(仅限调试)
  • 调试信息:完整的调试信息(调试)/无调试信息(发布)

在所有情况下都没有附加调试器.程序非常简短,并且没有编译器指令可以使它在调试或发布时编译时运行方式不同.没有明显的理由来解释这种行为.在发布模式下进行编译时,看起来垃圾收集器从未被触发(或者至少没有足够的时间)并且内存未被释放.

似乎已经提出类似的问题,但它似乎与我的问题不同.

c# garbage-collection out-of-memory compile-mode

4
推荐指数
1
解决办法
556
查看次数