From 3bd6550c344dc0f7b44494985e67db1ec06499fa Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Sun, 10 Nov 2024 16:43:14 -0500 Subject: [PATCH] Fix link --- blog/2019-06-31-high-performance-systems/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/2019-06-31-high-performance-systems/index.mdx b/blog/2019-06-31-high-performance-systems/index.mdx index 480df6c..f03a2c5 100644 --- a/blog/2019-06-31-high-performance-systems/index.mdx +++ b/blog/2019-06-31-high-performance-systems/index.mdx @@ -135,7 +135,7 @@ principle is the same: running the allocator to allocate/deallocate memory takes be put to better use. Understanding when your language interacts with the allocator is crucial, and not always obvious. For example: C++ and Rust don't allocate heap memory for iterators, but Java does (meaning potential GC pauses). Take time to understand heap behavior (I made a -[a guide for Rust](/2019/02/understanding-allocations-in-rust.html)), and look into alternative +[a guide for Rust](/2019/02/understanding-allocations-in-rust)), and look into alternative allocators ([jemalloc](http://jemalloc.net/), [tcmalloc](https://gperftools.github.io/gperftools/tcmalloc.html)) that might run faster than the operating system default.