这绝对是主观的,但我想尽量避免它变得有争议.我认为如果人们适当地对待它可能是一个有趣的问题.
对这个问题的想法来自评论跟帖从我的回答到:"你恨你喜欢的语言什么的五件事?" 问题.我争辩说C#中的类应该默认密封 - 我不会把我的推理放在这个问题上,但我可以写一个更全面的解释作为这个问题的答案.我对评论中讨论的热度感到惊讶(目前有25条评论).
那么,你持有什么有争议的意见?我宁愿避免那种以相对较少的基础(例如括号放置)而变得非常宗教的东西,但是例子可能包括诸如"单元测试实际上并不十分有用"或"公共领域真的很好"之类的东西.重要的是(对我来说,无论如何)是你有理由支持你的意见.
请提出您的意见和推理 - 我鼓励人们投票支持有争议和有趣的意见,无论您是否恰好同意这些意见.
我正在编写一个相对复杂的函数来进行从头到尾的数据分析.这个函数调用了我编写的许多子函数(它们本身称为子子函数等).我正在寻找一种工具来告诉我我的功能在每个子功能和子功能上花了多少时间,以便了解我应该在哪里寻找性能改进.与MATLAB的分析器类似的东西会很好.
例如,一个假设的功能audit:
#fun1 is called by fun2
fun1 <- function() {
rnorm(100000)
}
fun2 <- function(x) {
y <- x+1
z <- y*fun1()
}
mainFun <- function() {
z+3
}
audit(mainFun())
> mainFun = 1 s; of which 95% is in fun1 and 98% is fun2
Run Code Online (Sandbox Code Playgroud)
显然,我可以使用microbenchmark()或system.time()用于每个单独的功能 - 但随着mainFun变得更加复杂,使用它有效变得棘手.是否有现成的工具?