【转】帮助Emacs 维护者收集统计信息以优化 Emacs GC 的默认值

安装 emacs-gc-stats 这个包, 正常使用Emacs几周后通过电子邮件将生成的统计信息发送至 [email protected]

(require 'emacs-gc-stats)
(setq emacs-gc-stats-gc-defaults 'emacs-defaults) ; 可选的,如果你有其他的 GC 设置就不要设置这个了。
(emacs-gc-stats-mode +1)

Emacs 的垃圾收集默认设置相当古老,并且经常会导致明显的速度下降。但是,很难知道什么样的默认值更好。

现在 Emacs devel 需要用户的帮助来获取有关 Emacs Emacs garbage collection(垃圾回收)的真实数据。详细讨论见: Re: Indentation and gc - Ihor Radchenko

以下信息会在你输入每个命令时被收集:

  • GC 设置gc-cons-thresholdgc-cons-percentage
  • Emacs 版本以及是否使用 Emacs 框架(Doom、Prelude 等)
  • 是否使用了gcmh-mode
  • Idle time and Emacs uptime
  • 可用的操作系统内存(见memory-info
  • Emacs memory allocation/GC stats (Emacs 内存分配/GC 统计)
  • 当前的命令

详细介绍见: https://www.reddit.com/r/emacs/comments/14dej62/please_help_collecting_statistics_to_optimize/

17 个赞

telemetry(手动挡)

3 个赞

emacs-gc-stats author here. Feel free to ask questions.

Chinese users tend to use a different set of packages, so your input would be welcome.

这里是 emacs-gc-stats 的作者。如有问题,请随意提问。

因为中文用户往往使用不同的包,因此我们欢迎您的参与。

10 个赞

Currently the default value of gc-cons-threshold is 800000 (781.25KB), and gc-cons-percentage is 0.1(%10).

Is the purpose of this package to collect information to fine-tune these two values?

Yes. Now, we are trying to determine if the existing default values really impact Emacs responsiveness [1].

You can see an example of the statistics we can get in [2] We are not yet trying to see non-default settings though.

是的。现在,我们正在尝试确定现有默认值是否真正影响Emacs的响应能力[1]。

您可以在[2]中看到我们可以得到的统计数据的示例。但是,我们还没有尝试查看非默认设置。

[1] Re: Indentation and gc - Eli Zaretskii

[2] Re: Indentation and gc - Ihor Radchenko

6 个赞

Update: I have released a new version on ELPA (GNU ELPA - emacs-gc-stats).

The new version adds some requested features:

  1. More control over what is being logged (emacs-gc-stats-inhibit-command-name-logging, emacs-gc-stats-setting-vars, emacs-gc-stats-command-vars, and emacs-gc-stats-summary-vars).
  2. Reminder (disabled by default) to share the results after several weeks. emacs-gc-stats-remind

See ELPA page for more details.

更新:我在ELPA (GNU ELPA - emacs-gc-stats) 发布了新版本。

新版本增加了一些用户请求的功能:

  1. 更多控制日志内容的方式(emacs-gc-stats-inhibit-command-name-logging, emacs-gc-stats-setting-vars, emacs-gc-stats-command-varsemacs-gc-stats-summary-vars)。
  2. 提醒(默认禁用),在几周后分享结果。emacs-gc-stats-remind

更多详情请查看ELPA页面。

5 个赞

This is a final call to submit your GC statistics.

We now got around 90 reports in the mailing list [1] and the frequency of getting new reports is fairly low now.

After a week from now, I will start bringing all the data together.

[1] emacs-gc-stats Archives


这是提交 GC 统计数据的最后一次调用。

现在,我们在邮件列表 [1] 中收到了大约 90 份报告,并且现在获得新报告的频率相当低。

一周后,我将开始将所有数据汇总在一起。

[1] emacs-gc-stats Archives

4 个赞

The results have been collected and presented at EmacsConf: EmacsConf - 2023 - talks - emacs-gc-stats: Does garbage collection actually slow down Emacs?


结果已收集并在 EmacsConf 上展示:EmacsConf - 2023 - talks - emacs-gc-stats: Does garbage collection actually slow down Emacs?

9 个赞