JuliaPlots/Plots.jl

[FR] Improve performance of plotting heatmaps

Open

#4.520 geöffnet am 15. Nov. 2022

Auf GitHub ansehen
 (13 Kommentare) (1 Reaktion) (0 zugewiesene Personen)Julia (381 Forks)batch import
help wantedperformance

Repository-Metriken

Stars
 (1.943 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 13T 6h) (2 gemergte PRs in 30 T)

Beschreibung

Reported on Slack by Jesse Chan, repeated calls to plot! to produce overlying heatmaps was very slow.

const mat = randn(512, 512)

function f(x, n)
    plot()
    for _ in 1:n
        heatmap!(x)
    end
end

f(mat, 100)

Allocation profiler shows the large majority of allocations occurring in heatmap_edges: image

And the large majority of computation time in expand_extrema! (which calls heatmap_edges) and update_clims (my old nemesis): image

Contributor Guide