【发布时间】:2015-07-20 20:39:04
【问题描述】:
在 MATLAB 中有一对函数 tic 和 toc
可用于启动和停止秒表计时器。
取自link的例子:
tic
A = rand(12000, 4400);
B = rand(12000, 4400);
toc
C = A'.*B';
toc
我知道 Julia 中有一个宏 @time
具有类似的功能。
julia> @time [sin(cos(i)) for i in 1:100000];
elapsed time: 0.00721026 seconds (800048 bytes allocated)
Julia 中有没有一组类似的函数?
@time 宏适用于时序语句
可以写成一两行。
对于较长的代码部分,
我更喜欢使用 tic-toc 函数。
我尝试了什么
当我在谷歌上搜索“朱莉娅秒表”时, 我找到了一个有用的链接和四个不相关的链接。
- 介绍 Julia/元编程 - 维基教科书,打开 ... 元编程是指您编写 Julia 代码来处理和修改 Julia 代码。 ... @time 宏在开头插入一个“启动秒表”命令 ...
- 我们的隐形秒表促销 - YouTube Julia 秒表视频
- Julia Larson 在 Twitter 上说:“这个#Mac OSX 计时器/秒表是......
- 用秒表计时《法国大厨》的剧集
- 朱莉娅·格里菲斯 | Oiselle 女士跑步服装
我不知道为什么我没有想到只是尝试tic() 和toc()。
【问题讨论】:
-
Julia 也有
tic()和toc()... 但是,请务必阅读 Julia 性能提示 docs.julialang.org/en/latest/manual/performance-tips/… ... tl;dr 是您最好不要进行计算在函数内部而不是在全局范围内做所有事情,之后使用@time会很简单。@time的另一个优势在于它除了报告时间之外还报告内存分配。 -
我不明白为什么这值得一票否决(也许是“我尝试了什么”部分中的无关材料?)。过于苛刻。+1 回到 0。另外,我强烈支持以赛亚的评论。90% 的“为什么我的 Julia 慢”问题的出现是因为作者在全局范围内工作,即没有将代码包装在函数中。
-
@ColinTBowers 我实际上收到了两次反对票。我的猜测是,因为我不只是尝试
tic()和toc(),投票者对此感到不安。后来我添加了“我尝试了什么”部分来解释为什么当我搜索函数tic()和toc()实际上在 Julia 中退出时对我来说并不明显。 -
明白。 “我尝试过的”部分通常是个好主意,并且像您所拥有的那样明确表示会更好。当然,有时人们会变得有点傻。我记得this question 被关闭的时候,因为它最初没有包含“我尝试过的”部分......
标签: julia