tcmalloc
compiler-rt
tcmalloc | compiler-rt | |
---|---|---|
15 | 2 | |
4,081 | 284 | |
1.4% | - | |
9.8 | 10.0 | |
3 days ago | over 4 years ago | |
C++ | C | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tcmalloc
-
Configuring HugePages on Google's TCMalloc
https://github.com/google/tcmalloc/issues/190
-
Configuring HugePages on TCMalloc
I had earlier raised a query on the github.com/google/tcmalloc regarding how I can force tcmalloc to back memory with hugetlbfs instead of using Transparent Huge Pages. I have attached the link to my query below. Please let me know if there is an possible way to do this.
-
New memory related fields in Yugabyte 2.17.3 pg_stat_activity
The allocated_mem_bytes field shows the memory allocated by the memory allocator. PostgreSQL is setup in an extensible way, which includes the ability to choose a memory allocator, which for PostgreSQL is ptmalloc, and for YSQL is tcmalloc. PostgreSQL has the ability to change the memory allocator, but by default uses the operating system memory allocator.
-
Spotting and Avoiding Heap Fragmentation in Rust Applications
> * Switching from libc malloc to tcmalloc (dating myself a little bit)
If you think of tcmalloc as an old crusty allocator, you've probably only seen the gperftools version of it.
This is the version Google now uses internally: https://github.com/google/tcmalloc
It's worth a fresh look. In particular, it supports per-CPU caches as an alternative to per-thread caches. Those are fantastic if you have a lot more threads than CPUs.
-
I've had bad luck with transparent hugepages on my Linux machines
The default setting of max_ptes_none is also problematic.
On a stock kernel, it's 511. TCMalloc's docs recommend using max_ptes_none set to 0 for this reason: https://github.com/google/tcmalloc/blob/master/docs/tuning.m...
(Disclosure: I work on TCMalloc and authored the above doc.)
-
Pages Are a Good Idea
The easiest way to exploit THP, by far, is to link your program against TCMalloc and forget about it. Literally free money. Highly recommended.
https://github.com/google/tcmalloc
- Why tcmalloc using aggresive decommit == false is a litte better than jemalloc
- System memory allocator free operation zeroes out deallocated blocks in iOS 16
-
malloc() and free() are a bad API
This means that efficient malloc implementation is typically overly complicated. mimalloc for example is almost 8K lines of C afaik, which is one of the smaller but still efficient malloc implementation I'm aware of. (Try looking into tcmalloc for comparison).
-
malloc global mutex?
Yes, it is synchronized, you can also swap out the implementation typically. There are different allocators out there depending on what you are trying to optimize for (memory, single thread performance, multithread performance, locality, etc). A lot of multithreading optimized ones use per thread pools, so each individual allocation doesn't need to globally lock, but changing the pools themself does, or large allocations that aren't part of the pools. For example https://github.com/google/tcmalloc
compiler-rt
-
How to generate all the possible de Bruijn sequences/constants and corresponding tables for counting leading/trailing zeroes on an unsigned integer?
I don't think understanding it is very relevant to OPs goal of learning how low level compiler builtins are implemented though. Compiler clz() functions don't use debruijn sequences or lookup tables, even on platforms without dedicated instructions for them. Here's the relevant code for LLVM.
- Is there any reason to overload operator new/delete?
What are some alternatives?
image-spec - OCI Image Format
de-bruijn-generator - 📦 A javascript implementation of the de Bruijn sequence algorithm
jemalloc
tinyrenderer - A brief computer graphics / rendering course
dlmalloc - Doug Lea's memory allocator
mimalloc - mimalloc is a compact general purpose allocator with excellent performance.
glibc - Unofficial mirror of sourceware glibc repository. Updated daily.