[求助] 为什么这个插件会生成这么多timers?

我之前写了一个插件

但是发现 list-timers 里面有很多被生成的 timers. 像这样:

1179.80          -    #f(compiled-function () #<bytecode
-0x120012ba5f9562c1> [#<hash-table equal 1440/1642 0x1565afccff6b>
("-1003358868.jpg" :v-adjust 0.01) remhash])
1179.80          -    #f(compiled-function () #<bytecode
-0x11c7991bee93a665> [#<hash-table equal 1440/1642 0x1565afccff6b>
("1004068059.jpg" :v-adjust 0.01) remhash])
1179.80          -    #f(compiled-function () #<bytecode
0x1d09e6f58d6a9d3f> [#<hash-table equal 1440/1642 0x1565afccff6b>
("-1004540555.jpg" :v-adjust 0.01) remhash])
1179.80          -    #f(compiled-function () #<bytecode
-0x728e7a4499562c5> [#<hash-table equal 1440/1642 0x1565afccff6b>
("-1010525956.jpg" :v-adjust 0.01) remhash])
1179.80          -    #f(compiled-function () #<bytecode
-0x8917a573e9562c5> [#<hash-table equal 1440/1642 0x1565afccff6b>
("-1011541969.jpg" :v-adjust 0.01) remhash])
       1h 54m 24.9s            - #f(compiled-function () #<bytecode 0x15627c2da862a7a4> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://www.zhihu.com/question/281992632/answer/612244555" :v-adjust -0.05) remhash])
       1h 54m 24.9s            - #f(compiled-function () #<bytecode 0x185dd8418bb95f95> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://www.zhihu.com/question/312702679/answer/648228648" :v-adjust -0.05) remhash])
       1h 54m 24.9s            - #f(compiled-function () #<bytecode 0x1543f4c7ed08f637> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://www.zhihu.com/question/19918564" :v-adjust -0.05) remhash])
       1h 57m 50.2s            - #f(compiled-function () #<bytecode 0x1624e8d5c40e6cd7> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://wangdoc.com/ssh/" :v-adjust -0.05) remhash])
       1h 57m 50.2s            - #f(compiled-function () #<bytecode 0x1d58d576aa4ef853> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://emacs-china.org/t/linux-kvm-windows/15134" :v-adjust -0.05) remhash])
       1h 57m 50.3s            - #f(compiled-function () #<bytecode 0x33bd87bdd6ddd93> [#<hash-table equal 236/325 0x157dcf12ae9d> ("https://www.douban.com/gallery/topic/720/" :v-adjust -0.05) remhash])
       1h 57m 50.3s            - #f(compiled-function () #<bytecode 0x63ad8d9a555e907> [#<hash-table equal 83/97 0x157dcf01dea5> (".org" :face org-link :v-adjust 0) remhash])
       1h 57m 50.4s            - #f(compiled-function () #<bytecode 0x12ca43d2c81e6703> [#<hash-table equal 83/97 0x157dcf01dea5> ("Computer Todos.org") remhash])
       1h 57m 56.6s            - #f(compiled-function () #<bytecode 0x1681d642b3ef7697> [#<hash-table equal 83/97 0x157dcf01dea5> ("init-emacs-appearance.el") remhash])
       1h 58m 14.6s            - #f(compiled-function () #<bytecode -0xf96db9ba05420ab> [#<hash-table equal 83/97 0x157dcf01dea5> ("init-emacs-frame.el") remhash])

打开越多Org文件,就生成越多这样的timer.

想要找到原因所在。如果可以给出解决方案,那就更加完美了。这个问题困扰我很久了。就是找不到原因。

我前几天也发到

这里去问过,但是没有找到答案。所以这次贴到这里来问问大神们。

经过 @seagle0128 的提示,确实在代码中找出了 all-the-icons 其实由于 memoize 的缘故,导致了大量的timer. 看来是没法绕过这个问题了。