小编Mii*_*iao的帖子

如何强制优化器在 Julia 中保留一些代码?

如何强制计算表达式,使其不会被优化?

@elapsed f()返回零,因为纯函数的结果f未被使用。

在 Rust 中,我们可以使用一个名为 的内在函数black_box,在 Nim - usedpragma 中,在 C 中我们可以创建一个volatile变量,在 Zig -doNotOptimizeAway函数中,在 Haskell 中我们可以使用它evaluate来强制求值,等等。我怎样才能在朱莉娅做到这一点?


另外,@elapsed实际上是测量经过时间的正确方法吗?我个人需要一个具有纳秒精度的单调计时器......

benchmarking microbenchmark julia

5
推荐指数
1
解决办法
81
查看次数

没有由文字“0”产生“Num (IO ())”实例

我正在实现一个简单的迭代斐波那契。为了测试它,我写了一个简单的main

fib n = i where (i, _) = foldl (\(i, j) _ -> (j, i + j)) (0, 1) [1..n] 

main = do
    foldl (\_ n -> print $ fib n) 0 [0, 5, 10]
Run Code Online (Sandbox Code Playgroud)

...并出现错误!

* No instance for `Num (IO ())' arising from the literal `0'
* In the second argument of `foldl', namely `0'
  In a stmt of a 'do' block:
    foldl (\ _ n -> print $ fib n) 0 [0, 5, 10] …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
91
查看次数

标签 统计

benchmarking ×1

haskell ×1

julia ×1

microbenchmark ×1