Kobzol’s blog

Blog about programming stuff.
https://kobzol.github.io/ (RSS)
visit blog
PhD postmortem
12 Nov 2024 | original ↗

I haven’t been blogging for the past ~eight months, because I was quite busy finishing my PhD thesis. I have finally submitted it by the end of August, and as of today, I have also succesfully defended it, which marks the end of my six (!) years1 long PhD study in the area of High-Performance Computing and Computer Science. My PhD study...

What part of Rust compilation is the bottleneck?
15 Mar 2024 | original ↗

Rust compilation times is an ongoing topic that generates many discussions online1. Most people don’t really care about what exactly takes time when compiling Rust program; they just want it to be faster in general. But sometimes, you can see people pointing fingers at specific culprits, like LLVM or the borrow checker. In this post, I’ll try to...

Automating Cargo project configuration using cargo-wizard
10 Mar 2024 | original ↗

TL;DR: I created a Cargo subcommand called cargo-wizard that simplifies the configuration of Cargo projects for maximum runtime performance, fastest compilation time or minimal binary size.

Compiling Rust is testing
4 Feb 2024 | original ↗

Edit: it looks like some people misunderstood what I wanted to express with this post. So, to avoid further confusion, pretty much the only thing that I wanted to say here was this: I know that waiting for a Rust program to compile sucks, but we should not forget all the benefits that this compilation process brings us in return. (Yes, this post...

Process spawning performance in Rust
28 Jan 2024 | original ↗

As part of my PhD studies, I’m working on a distributed task runtime called HyperQueue. Its goal is to provide an ergonomic and efficient way to execute task graphs on High-Performance Computing (HPC) distributed clusters, and one of its duties is to be able to spawn a large amount of Linux processes efficiently. HyperQueue is of course written...

Making Rust binaries smaller by default
23 Jan 2024 | original ↗

Have you ever tried to compile a helloworld Rust program in --release mode? If yes, have you seen its binary size? Suffice to say, it’s not exactly small. Or at least it wasn’t small until recently. This post details how I found about the issue and my attempt to fix it in Cargo.

Examining Rust async iterator approaches
27 Nov 2023 | original ↗

I’m an avid user of async Rust, and I have used it to implement various kinds of distributed systems and networking applications. Even though async Rust is very helpful in expressing concurrent processes, synchronization patterns, timeouts etc., it is not a secret that there are still a lot of papercuts and missing features in it. One of these is...

Make the Rust compiler 5% faster with this one weird trick
21 Oct 2023 | original ↗

TL;DR: On Linux, if you have Transparent Huge Pages enabled, you can try to run cargo with the environment variable MALLOC_CONF="thp:always,metadata_thp:always" for a potential ~5% speed boost.

Adding runtime benchmarks to the Rust compiler benchmark suite
23 Sept 2023 | original ↗

This post describes the design and implementation of a runtime benchmark suite for measuring the performance of Rust programs, which was recently added into the Rust compiler suite. I have recently blogged about how the whole benchmark suite works, so feel free to read that post first if you want to gather a bit more context.

Exploring the Rust compiler benchmark suite
18 Aug 2023 | original ↗

In my recent post about the Rust compiler CI (continuous integration) and benchmarking infrastructure, I have promised to write a blog post about runtime benchmarks, which is a new addition to the benchmark suite of the Rust compiler. However, I realized that before doing that, it might be a good idea to first describe how does the benchmark...

Inspecting rustc LLVM optimization remarks using cargo-remark
12 Aug 2023 | original ↗

TL;DR: This post describes LLVM optimization remarks that can useful to help the compiler better optimize your programs. If you want to analyze remarks generated from compiling Rust programs, you can use the cargo-remark tool.

↑ these items are from RSS. Visit the blog itself at https://kobzol.github.io/ to find other articles and to appreciate the author's digital home.