小编Kir*_*ar.的帖子

Julia中基准和时间宏之间的差异

我最近发现两个宏之间存在巨大差异:@benchmark和@time在内存分配信息和时间方面.例如:

@benchmark quadgk(x -> x, 0., 1.)
BenchmarkTools.Trial: 
memory estimate:  560 bytes
allocs estimate:  17
--------------
minimum time:     575.890 ns (0.00% GC)
median time:      595.049 ns (0.00% GC)
mean time:        787.248 ns (22.15% GC)
maximum time:     41.578 ?s (97.60% GC)
--------------
samples:          10000
evals/sample:     182

@time quadgk(x -> x, 0., 1.)
0.234635 seconds (175.02 k allocations: 9.000 MiB)
(0.5, 0.0)
Run Code Online (Sandbox Code Playgroud)

为什么这两个例子之间有很大的不同?

macros microbenchmark julia

6
推荐指数
1
解决办法
281
查看次数

Julia数组是同构的吗?

一方面,如果我有x=[1,2,3],则无法添加"foo"x,但是如果我以开头x=[1,2,3,"foo"],则联合类型为Any,则可以将所需的内容添加到数组中。说Julia数组是齐次的是否正确?因为我可以创建的数组Any

arrays types julia

4
推荐指数
1
解决办法
59
查看次数

使用数组视图时出现意外的内存分配(julia)

我正在尝试在数组X中搜索所需的模式(变量模板).模板的长度为9.

我做的事情如下:

function check_alloc{T <: ZeroOne}(x :: AbstractArray{T}, temp :: AbstractArray{T})
    s = 0
    for i in 1 : 1000
        myView = view(x, i : i + 9)
        if myView == temp
            s += 1
        end
    end
    return s
end
Run Code Online (Sandbox Code Playgroud)

并在此短循环中获得意外的内存分配(46 KB).为什么会发生这种情况?如何防止内存分配和性能下降?

arrays performance allocation julia

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

标签 统计

julia ×3

arrays ×2

allocation ×1

macros ×1

microbenchmark ×1

performance ×1

types ×1