# Performance

**URL:** https://discourse.julialang.org/c/usage/perf/37.md

[Latest](https://discourse.julialang.org/latest.md) · [Categories](https://discourse.julialang.org/categories.md) · [Tags](https://discourse.julialang.org/tags.md)

---

## [About the Performance category](https://discourse.julialang.org/t/about-the-performance-category/6422)

<div class="topic-metadata">

**Author:** [@system](https://discourse.julialang.org/u/system)\
**Replies:** 0\
**Last updated:** [October 13, 2017, 2:43pm UTC](https://discourse.julialang.org/t/about-the-performance-category/6422 "2017-10-13T14:43:11Z")

</div>

Any questions about how to achieve top performance in Julia? Or do you have a specific small piece of code that you want to make as fast as possible? Read the manual, especially Performance Tips · The Julia Language U…

---

## [A plot of dynamic dispatch cost](https://discourse.julialang.org/t/a-plot-of-dynamic-dispatch-cost/139517)

<div class="topic-metadata">

**Author:** [@skraemer](https://discourse.julialang.org/u/skraemer)\
**Replies:** 0\
**Last updated:** [September 17, 2026, 2:53pm UTC](https://discourse.julialang.org/t/a-plot-of-dynamic-dispatch-cost/139517 "2026-09-17T14:53:20Z")

</div>

I made some experiments that helped me further understand both qualitative and quantitative behaviour of dynamic dispatch cost and method caches. So I thought I may as well add it to the collection. Have a look if you li…

---

## [ReTestItems.jl status and Julia 1.13+ compatibility](https://discourse.julialang.org/t/retestitems-jl-status-and-julia-1-13-compatibility/139364)

<div class="topic-metadata">

**Author:** [@Rafael\_Brus](https://discourse.julialang.org/u/Rafael_Brus)\
**Replies:** 3\
**Last updated:** [September 14, 2026, 4:26pm UTC](https://discourse.julialang.org/t/retestitems-jl-status-and-julia-1-13-compatibility/139364 "2026-09-14T16:26:28Z")

</div>

Hi everyone, Is anyone currently using ReTestItems.jl? I think it is an amazing tool — the parallel test execution and test items workflow have been great for our test suites. However, it currently fails on Julia 1.13…

---

## [PerfChecker.jl is reaching a good state and we're looking for ~~labrats~~ testers/users](https://discourse.julialang.org/t/perfchecker-jl-is-reaching-a-good-state-and-were-looking-for-labrats-testers-users/114897)

<div class="topic-metadata">

**Author:** [@Azzaare](https://discourse.julialang.org/u/Azzaare)\
**Replies:** 1\
**Last updated:** [September 14, 2026, 5:16am UTC](https://discourse.julialang.org/t/perfchecker-jl-is-reaching-a-good-state-and-were-looking-for-labrats-testers-users/114897 "2026-09-14T05:16:01Z")

</div>

Hi there! Years ago, I announced a proof of concept package to handle testing performances over versions: PerfChecker.jl We’re reaching the point were the package is ready to be used (v"0.2.0" waiting for merge). And w…

---

## [Region-based GC for Julia: worst event pause 4 ms → 55 µs](https://discourse.julialang.org/t/region-based-gc-for-julia-worst-event-pause-4-ms-55-s/139158)

<div class="topic-metadata">

**Author:** [@melevy](https://discourse.julialang.org/u/melevy)\
**Replies:** 8\
**Last updated:** [September 8, 2026, 5:58pm UTC](https://discourse.julialang.org/t/region-based-gc-for-julia-worst-event-pause-4-ms-55-s/139158 "2026-09-08T17:58:13Z")

</div>

I run discrete-event simulations that drive hardware in the loop, which means every event has a deadline of about 100 µs. Julia’s collector is fine on throughput but occasionally it stops the world for milliseconds, an…

---

## [Sending excel file as response is slow](https://discourse.julialang.org/t/sending-excel-file-as-response-is-slow/116705)

<div class="topic-metadata">

**Author:** [@Sandy45](https://discourse.julialang.org/u/Sandy45)\
**Replies:** 8\
**Last updated:** [August 29, 2026, 4:46pm UTC](https://discourse.julialang.org/t/sending-excel-file-as-response-is-slow/116705 "2026-08-29T16:46:40Z")

</div>

I have an API which get csv file in the request and all I need to do is format and send the response as excel file. I am reading the data into dataframe and directly writing into excel. The issue is that writing data in…

---

## [Julia can debug MLIR, kinda](https://discourse.julialang.org/t/julia-can-debug-mlir-kinda/138694)

<div class="topic-metadata">

**Author:** [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Replies:** 3\
**Last updated:** [August 23, 2026, 2:48pm UTC](https://discourse.julialang.org/t/julia-can-debug-mlir-kinda/138694 "2026-08-23T14:48:43Z")

</div>

JIT’d thunks are debuggable in gdb, at source level Break on a mangled thunk name and gdb stops inside the emitted MLIR, by file and line, with list and disassemble /s working: cd ~/Desktop/Projects/RepliBuild.jl gd…

---

## [Preparing an antisymmetric matrix of normal numbers as efficiently as possible](https://discourse.julialang.org/t/preparing-an-antisymmetric-matrix-of-normal-numbers-as-efficiently-as-possible/138954)

<div class="topic-metadata">

**Author:** [@jibe](https://discourse.julialang.org/u/jibe)\
**Replies:** 11\
**Last updated:** [August 21, 2026, 1:25pm UTC](https://discourse.julialang.org/t/preparing-an-antisymmetric-matrix-of-normal-numbers-as-efficiently-as-possible/138954 "2026-08-21T13:25:01Z")

</div>

My goal is to prepare a fully antisymmetric matrix of normal numbers, on a single thread, as efficiently as possible. After numerous manual attempts, here is the best version I could come up with: using BenchmarkTools c…

---

## [Presentation of project](https://discourse.julialang.org/t/presentation-of-project/138962)

<div class="topic-metadata">

**Author:** [@haroldnick0](https://discourse.julialang.org/u/haroldnick0)\
**Replies:** 1\
**Last updated:** [August 21, 2026, 7:38am UTC](https://discourse.julialang.org/t/presentation-of-project/138962 "2026-08-21T07:38:23Z")

</div>

Hello everyone, My name is Harold Castro. I am a monitor at the Faculty of Communication and Language. I am participating in a project where we are creating a data narrative using Julia. The project is related to the 9…

---

## [Alternative to OOP?](https://discourse.julialang.org/t/alternative-to-oop/137543)

<div class="topic-metadata">

**Author:** [@dolefeast](https://discourse.julialang.org/u/dolefeast)\
**Replies:** 21\
**Last updated:** [August 20, 2026, 9:26pm UTC](https://discourse.julialang.org/t/alternative-to-oop/137543 "2026-08-20T21:26:36Z")

</div>

I’m curious about what the best practice in big packages are. My favorite part about python is OOP, which I don’t find in Julia. I’ve been working for a while on a project that’s gotten fairly big already, and it being p…

---

## [Why is dot so slow for small vectors?](https://discourse.julialang.org/t/why-is-dot-so-slow-for-small-vectors/138950)

<div class="topic-metadata">

**Author:** [@mwlidar](https://discourse.julialang.org/u/mwlidar)\
**Replies:** 4\
**Last updated:** [August 20, 2026, 3:40pm UTC](https://discourse.julialang.org/t/why-is-dot-so-slow-for-small-vectors/138950 "2026-08-20T15:40:44Z")

</div>

I used LinearAlgebra.dot for small to medium sized vectors but discovered recently that it is much slower for short vectors than an simple for loop. The following code using Printf using LinearAlgebra using BenchmarkToo…

---

## [More idiomatic way of phrasing \`reduce(\\circ, repeated(f, x))(y)\`?](https://discourse.julialang.org/t/more-idiomatic-way-of-phrasing-reduce-circ-repeated-f-x-y/138647)

<div class="topic-metadata">

**Author:** [@rokke](https://discourse.julialang.org/u/rokke)\
**Replies:** 24\
**Last updated:** [August 15, 2026, 2:49pm UTC](https://discourse.julialang.org/t/more-idiomatic-way-of-phrasing-reduce-circ-repeated-f-x-y/138647 "2026-08-15T14:49:08Z")

</div>

I usually use reduce(∘, repeated(func, x))(a) when I need to apply func to a x times, but apparently it spends most of the time creating the single composed function; averaging ~20x as long as an equivalent accumulate in…

---

## [What is the current state of multi-threaded BLAS in Julia?](https://discourse.julialang.org/t/what-is-the-current-state-of-multi-threaded-blas-in-julia/111945)

<div class="topic-metadata">

**Author:** [@leestrobel](https://discourse.julialang.org/u/leestrobel)\
**Replies:** 9\
**Last updated:** [August 15, 2026, 6:36am UTC](https://discourse.julialang.org/t/what-is-the-current-state-of-multi-threaded-blas-in-julia/111945 "2026-08-15T06:36:51Z")

</div>

Hi, I am wondering what is the current state of multi-threaded BLAS in Julia? I remember looking into several options about a year ago for accelerating dense matrix multiplication and sparse solving on some PDE code I w…

---

## [AOCL (not MKL) acceleration on AMD Ryzen CPU's](https://discourse.julialang.org/t/aocl-not-mkl-acceleration-on-amd-ryzen-cpus/112890)

<div class="topic-metadata">

**Author:** [@aasdelat](https://discourse.julialang.org/u/aasdelat)\
**Replies:** 28\
**Last updated:** [August 10, 2026, 10:54am UTC](https://discourse.julialang.org/t/aocl-not-mkl-acceleration-on-amd-ryzen-cpus/112890 "2026-08-10T10:54:52Z")

</div>

Hi: I am interested in calling a lapack routine, dgesvd, that makes a singular value decomposition of a matrix. The library LinearAlgebra.jl already does it, but it is a generic library that does not take full advantag…

---

## [Absence of easy-to-use AMD AOCL-BLAS/LAPACK support for Julia?](https://discourse.julialang.org/t/absence-of-easy-to-use-amd-aocl-blas-lapack-support-for-julia/131697)

<div class="topic-metadata">

**Author:** [@Norman](https://discourse.julialang.org/u/Norman)\
**Replies:** 7\
**Last updated:** [August 10, 2026, 10:52am UTC](https://discourse.julialang.org/t/absence-of-easy-to-use-amd-aocl-blas-lapack-support-for-julia/131697 "2026-08-10T10:52:21Z")

</div>

With the growing popularity of AMD CPUs over the recent years, I wonder whether there has been any news on an easy-to-use package that allows the use of AOCL-BLAS and AOCL-LAPACK? I am looking for something like MKL.jl t…

---

## [Benchmarking and threads](https://discourse.julialang.org/t/benchmarking-and-threads/138593)

<div class="topic-metadata">

**Author:** [@phma](https://discourse.julialang.org/u/phma)\
**Replies:** 9\
**Last updated:** [August 9, 2026, 9:14am UTC](https://discourse.julialang.org/t/benchmarking-and-threads/138593 "2026-08-09T09:14:02Z")

</div>

In the bench workspace, I have this function: function kaftorTime(textLen::Integer,keyLen::Integer) # in nanoseconds text=fill(0x69,textLen) key=fill(0x96,keyLen) trial=@benchmark kaftorEncrypt!($text,$key) me…

---

## [Running AST directly (for scripts), bypassing parsing; deserialize ok in the sysimage?](https://discourse.julialang.org/t/running-ast-directly-for-scripts-bypassing-parsing-deserialize-ok-in-the-sysimage/138590)

<div class="topic-metadata">

**Author:** [@Palli](https://discourse.julialang.org/u/Palli)\
**Replies:** 0\
**Last updated:** [August 4, 2026, 10:25pm UTC](https://discourse.julialang.org/t/running-ast-directly-for-scripts-bypassing-parsing-deserialize-ok-in-the-sysimage/138590 "2026-08-04T22:25:08Z")

</div>

In short it’s faster, should go down to 1.02 sec from 1.318, 23% faster, assuming precompile overhead 0.51+ sec goes away, to run the abstract syntax tree (AST) than parse a script. I was testing with: However it’s no…

---

## [Cross-language LTO with Base.llvmcall: getting past the "IR at every callsite" wall](https://discourse.julialang.org/t/cross-language-lto-with-base-llvmcall-getting-past-the-ir-at-every-callsite-wall/138429)

<div class="topic-metadata">

**Author:** [@obsidianjulua](https://discourse.julialang.org/u/obsidianjulua)\
**Replies:** 8\
**Last updated:** [August 1, 2026, 9:29pm UTC](https://discourse.julialang.org/t/cross-language-lto-with-base-llvmcall-getting-past-the-ir-at-every-callsite-wall/138429 "2026-08-01T21:29:43Z")

</div>

I’ve been parked hard on Base.llvmcall for a while and I can’t leave it alone. At first I was cruising — “oh man, this replaces everything; I’ll just inline every FFI call and let Julia LTO the whole thing.” Then I tried…

---

## [GC60: Final Research Update](https://discourse.julialang.org/t/gc60-final-research-update/138391)

<div class="topic-metadata">

**Author:** [@Claugo](https://discourse.julialang.org/u/Claugo)\
**Replies:** 7\
**Last updated:** [July 22, 2026, 8:11pm UTC](https://discourse.julialang.org/t/gc60-final-research-update/138391 "2026-07-22T20:11:22Z")

</div>

Hi everyone, This will likely be my final post about the GC60 project. After four years of research, I believe I have reached the goal I set out to achieve. The program that reached this milestone is called GC60\_M60x16…

---

## [Load time of MTK models](https://discourse.julialang.org/t/load-time-of-mtk-models/138068)

<div class="topic-metadata">

**Author:** [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Replies:** 4\
**Last updated:** [July 16, 2026, 5:09pm UTC](https://discourse.julialang.org/t/load-time-of-mtk-models/138068 "2026-07-16T17:09:02Z")

</div>

I am not happy with the TTFX of our MTK models (see: RamAirKites.jl). We already cache our simplified model after building it and use a custom system image. But nevertheless, the time to load a model from our cache is st…

---

## [Slicing sparse and dense matrices and allocations](https://discourse.julialang.org/t/slicing-sparse-and-dense-matrices-and-allocations/137984)

<div class="topic-metadata">

**Author:** [@Boris](https://discourse.julialang.org/u/Boris)\
**Replies:** 15\
**Last updated:** [July 16, 2026, 7:39am UTC](https://discourse.julialang.org/t/slicing-sparse-and-dense-matrices-and-allocations/137984 "2026-07-16T07:39:21Z")

</div>

Hi, I am optimizing some old non-performance critical code of mine and run into a lot of allocations when using slicing operations with sparse and dense matrices. I distilled it to this MWE # ---------------------------…

---

## [CUDA.jl only supports NVIDIA drivers for CUDA 11.x or 12.x (yours is for CUDA 13.0.0)](https://discourse.julialang.org/t/cuda-jl-only-supports-nvidia-drivers-for-cuda-11-x-or-12-x-yours-is-for-cuda-13-0-0/137803)

<div class="topic-metadata">

**Author:** [@Cyan](https://discourse.julialang.org/u/Cyan)\
**Replies:** 5\
**Last updated:** [July 16, 2026, 1:53am UTC](https://discourse.julialang.org/t/cuda-jl-only-supports-nvidia-drivers-for-cuda-11-x-or-12-x-yours-is-for-cuda-13-0-0/137803 "2026-07-16T01:53:37Z")

</div>

Hi, all. I have upgraded the CUDA several times, but still got: julia\> using CUDA ┌ Error: This version of CUDA.jl only supports NVIDIA drivers for CUDA 11.x or 12.x (yours is for CUDA 13.0.0) └ @ CUDA ~/.julia/packag…

---

## [Julia nightly is now filling 2.08 GB of disk space](https://discourse.julialang.org/t/julia-nightly-is-now-filling-2-08-gb-of-disk-space/137939)

<div class="topic-metadata">

**Author:** [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Replies:** 17\
**Last updated:** [July 15, 2026, 11:00pm UTC](https://discourse.julialang.org/t/julia-nightly-is-now-filling-2-08-gb-of-disk-space/137939 "2026-07-15T23:00:08Z")

</div>

For comparison 1.13 takes 1.08 GB

---

## [Parallel Prime Sieving at High Magnitude with Julia (Project GC-60)](https://discourse.julialang.org/t/parallel-prime-sieving-at-high-magnitude-with-julia-project-gc-60/138200)

<div class="topic-metadata">

**Author:** [@Claugo](https://discourse.julialang.org/u/Claugo)\
**Replies:** 4\
**Last updated:** [July 15, 2026, 8:38am UTC](https://discourse.julialang.org/t/parallel-prime-sieving-at-high-magnitude-with-julia-project-gc-60/138200 "2026-07-15T08:38:10Z")

</div>

Hello everyone, I have shared with this forum two algorithms very dear to me: GC60\_M30x8 and GC60\_LRLN\_x8. These two algorithms have been combined, and the result highlights something fundamental: a different way of lo…

---

## [How can I significantly speed up conditional Universal Differential Equation training?](https://discourse.julialang.org/t/how-can-i-significantly-speed-up-conditional-universal-differential-equation-training/138126)

<div class="topic-metadata">

**Author:** [@NCCP](https://discourse.julialang.org/u/NCCP)\
**Replies:** 2\
**Last updated:** [July 13, 2026, 3:35pm UTC](https://discourse.julialang.org/t/how-can-i-significantly-speed-up-conditional-universal-differential-equation-training/138126 "2026-07-13T15:35:27Z")

</div>

Hello, I am training a conditional Universal Differential Equation in Julia. This is a regular UDE with an additional trainable parameter as input that is specific for each particle (individual) in the dataset. The mod…

---

## [High-Performance, Lane-Based Segmented Sieve in Julia](https://discourse.julialang.org/t/high-performance-lane-based-segmented-sieve-in-julia/137854)

<div class="topic-metadata">

**Author:** [@Claugo](https://discourse.julialang.org/u/Claugo)\
**Replies:** 6\
**Last updated:** [July 1, 2026, 10:27am UTC](https://discourse.julialang.org/t/high-performance-lane-based-segmented-sieve-in-julia/137854 "2026-07-01T10:27:47Z")

</div>

Hi everyone I wanted to share a program I’ve been working on within my GC60 project, which focuses on high-magnitude prime searching (beyond the 64-bit barrier). The goal wasn’t just to write a fast sieve, but to explor…

---

## [Base.retry: what is it for?](https://discourse.julialang.org/t/base-retry-what-is-it-for/137815)

<div class="topic-metadata">

**Author:** [@mzaffalon](https://discourse.julialang.org/u/mzaffalon)\
**Replies:** 1\
**Last updated:** [June 26, 2026, 9:17am UTC](https://discourse.julialang.org/t/base-retry-what-is-it-for/137815 "2026-06-26T09:17:55Z")

</div>

I understand the documentation for Base.retry. It seems useful but it does not seem to be used in Julia Base and in the standard library. Is there a specific reason?

---

## [How to understand reasons for some unexpected heap allocations](https://discourse.julialang.org/t/how-to-understand-reasons-for-some-unexpected-heap-allocations/137645)

<div class="topic-metadata">

**Author:** [@user664303](https://discourse.julialang.org/u/user664303)\
**Replies:** 25\
**Last updated:** [June 19, 2026, 1:47pm UTC](https://discourse.julialang.org/t/how-to-understand-reasons-for-some-unexpected-heap-allocations/137645 "2026-06-19T13:47:16Z")

</div>

I’m really surprised by some heap allocations being made within a package I maintain. I don’t expect them because: I’ve use Cthulhu to ensure that all variables in the code are concretely typed. The variables in questi…

---

## [Performance issue after upgrade from Julia 1.9.3 to 1.10.11](https://discourse.julialang.org/t/performance-issue-after-upgrade-from-julia-1-9-3-to-1-10-11/137657)

<div class="topic-metadata">

**Author:** [@rdl987](https://discourse.julialang.org/u/rdl987)\
**Replies:** 6\
**Last updated:** [June 18, 2026, 8:39am UTC](https://discourse.julialang.org/t/performance-issue-after-upgrade-from-julia-1-9-3-to-1-10-11/137657 "2026-06-18T08:39:42Z")

</div>

I’m migrating my project from julia 1.9.3 to 1.10.11 and I’m experiencing a huge quantity of time in gc. I benchmarked a function that performs arrow files reads from an s3 bucket an the @time with Julia 1.10.11 report …

---

## [Bijou64 varint encoding](https://discourse.julialang.org/t/bijou64-varint-encoding/137654)

<div class="topic-metadata">

**Author:** [@KyleSJohnston](https://discourse.julialang.org/u/KyleSJohnston)\
**Replies:** 5\
**Last updated:** [June 18, 2026, 5:53am UTC](https://discourse.julialang.org/t/bijou64-varint-encoding/137654 "2026-06-18T05:53:04Z")

</div>

I recently discovered the bijou64 variable-length integer encoding. The reference implementation is in Rust, and it appears to outperform LEB128 for most encoding and decoding. While I don’t have any need for bijou64 in …

[Next page](https://discourse.julialang.org/c/usage/perf/37.md?page=1)
