【发布时间】:2018-03-06 22:20:20
【问题描述】:
我最近发现可以使用编译器包在 R 中使用 JIT(即时)编译(我在 a recent blog post 中总结了我对这个主题的发现)。
我被问到的一个问题是:
有什么陷阱吗?听起来好得令人难以置信,只写一行 代码,就是这样。
环顾四周后,我发现一个可能与 JIT 的“启动”时间有关的问题。但是在使用 JIT 时还有什么需要注意的问题吗?
我想R的环境架构会有一些限制,但我想不出一个简单的例子来说明这个问题,任何建议或危险信号会有很大帮助吗?
【问题讨论】:
-
我不确定性能是否会受到影响(除了初始编译(可能还会增加内存使用量)),但“注意:没有可见的绑定”消息对于新手来说通常是压倒性的(例如,如果使用 ggplot2) 并且可以摆脱制表符完成(至少,它们适合我)
-
你好 mweylandt。你知道那个错误消息是什么意思吗?
-
当我创建新版本时,我一直将
ByteCompile: true放在我的包的说明文件中,它似乎工作正常。我做了一个小测试http://www.johnmyleswhite.com/notebook/2012/03/31/julia-i-love-you/comment-page-1/#comment-19522和字节编译版本fib2c的运行速度比普通测试fib2a快4 倍。在某些情况下,即使没有字节编译,R 也已经很快了(例如,在下面使用 C 的高度矢量化代码),在这些情况下,显然几乎没有加速的机会——它主要用于慢速 R 代码。 -
另一种方法是在加载函数时只编译函数,例如您的私人图书馆等。我在这里注意到了类似的目的:stackoverflow.com/questions/9815378/…
-
嗨,Dirk,我知道(甚至在帖子中提到过)。这是否意味着使用 JIT 在任何情况下都没有缺点?!
标签: performance r compiler-construction jit