
140
|
第
7
章
浪费到优化错误瓶颈对应的代码片段上。为了改进代码运行速度,至关重要
的是首先确定哪段代码是瓶颈。这就是代码分析的目的。
Rprof() 函数是一个分析
R
表达式执行情况的内置工具。在规则的时间间隔中,
该工具停下
R
解释器,记录当前函数调用堆栈并将相应信息保存到文件中。
Rprof() 的结果是不确定的。每次执行同一
R
函数时,外部环境都有所改变。
因此,每次你分析你的代码,测试结果会有稍微差异。
不幸的是,Rprof() 使用不便。基于这个原因,我们推荐使用
profvis
包来分
析你的
R
代码。
profvis
提供了交互式图形界面,能可视化显示 Rprof() 的分
析结果。
开始
profvis
安装完
profvis
(例如使用 install.packages("profvis") 命令)
,
就可用其
分析
R
代码。我们使用 movies 数据集来举一个简单例子,该数据集中包含大
约
60000
部电影信息。首先,我们选择喜剧类的电影,而后绘制了电影创作
年与电影评级,并绘制了一个局部多项式回归线来识别相应趋势。
profvis
包
中的主要函数是 profvis(), 该函数分析代码并生成交互式
HTML
页面的分
析结果。profvis() 的第一个参数是要测试的
R
表达式。可以有很多行:
library("profvis")
profvis({
data(movies, package = "ggplot2movies") #
加载数据
movies = movies[movies$Comedy == 1,] ...