netwake
mimalloc
netwake | mimalloc | |
---|---|---|
3 | 35 | |
53 | 9,499 | |
- | 1.1% | |
0.0 | 9.1 | |
over 2 years ago | 6 days ago | |
C | C | |
BSD 2-clause "Simplified" License | MIT License |
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.
netwake
-
Windows 95 went the extra mile to ensure compatibility of SimCity, other games
I wrote one to try. It also uses runtime feature detection to enable modern stuff like theming and high-DPI on Windows version that support it.
-
The Windows Malloc() Implementation Is a Trash Fire
> Ideally you'd like to build for all targets, including older systems, from a single, modern environment (this is trivial in Windows)
https://github.com/sjmulder/netwake does what you're talking about, but it does a lot of gymnastics to make it work, and it also needs to use MinGW rather than MSVC.
-
Windows 11: a survey of text boxes
> if you wrote a Windows Desktop app in the last 30 years, the only way it would still be supported today ... is if it was based directly on the old Win32 API
I thought the same and did just that to see if it holds true: https://github.com/sjmulder/netwake
By default you get Windows 95 styling and Windows 3 fonts. You have to opt into 'visual styles' (introduced in XP) with a declaration in the app manifest and have to manually query and use the system font. DPI awareness is also opt in and puts all the work (sizing/positioning, scaling/reloading fonts) on you. But when you do that, it does look fine on Windows 10.
Not so much on Windows 11. Some of the widgets have been updated to mimic the new style but when you put it together it looks messy and old fashioned (e.g. fonts + you don't get the new context menus).
I'm curious to learn how one would create a 'proper' Windows app without having to reimplement the system's widget styling.
mimalloc
- Mimalloc: High performance general purpose allocator
-
Replacing musl's malloc with mimalloc: any ideas?
mimalloc: mimalloc is an open source implementation of malloc, currently the best performing allocator.
-
Reptar
Some compiler writers thought that was the case, if [0] is related to OP. I don't have a "modern" (after 6th gen) Intel CPU to test it on, but note that most programs are compiled for a relatively generic CPU.
[0]: https://github.com/microsoft/mimalloc/issues/807
-
Is the JVM a upside or downside to Scala?
Yes, it's very efficient and that's not where the main problem lies. However, small allocations with modern C heap allocators like mimalloc or snmalloc has gotten extremely efficient as well. Would be interesting to see a benchmark comparison with Java's G1 and ZGC.
-
Z Garbage Collector: The Next Generation
Memory management for C is not itself a solved problem, not only is there a lot of performance to squeeze out of malloc itself (the benchmarks on https://github.com/microsoft/mimalloc exemplifies the variance between the implementations), but it's up to the programmer to implement memory management in the large in an efficient way, which is not an easy task. One sure mark of a slow C program is one with a ton of mallocs and frees strewn all over.
-
Linux Tech Tips EP#13: Testing Transparent Huge Pages and Cryo Utilities in Gaming | 3700X 6600XT
It's a very terse howto for replacing Factorio's memory allocator with Microsoft's mimalloc, and configuring mimalloc so that memory is always allocated on huge pages by using madvise().
-
Differences between Lean4 and Koka reference counting
I was wondering if Koka's perceus referencing counting style is any different from the reference counting that Lean4 implements? I understand that both rely upon the mimalloc (https://github.com/microsoft/mimalloc) library in the backend.
-
pmr implementation in c++14
If you are fine with heap allocations then there are only few dozens operator new/delete to override to regain control over normal C++ code memory use. Allocators and STL all need to call those. At least that's what gaming does on all platforms. If you need examples you can check Mimalloc on github ( https://github.com/microsoft/mimalloc/blob/master/include/mimalloc-new-delete.h ).
-
GitHub link to an Arma 3 allocator which increases performance by 20-50%
What's the difference between this and Microsoft's? https://github.com/microsoft/mimalloc
-
Rust Mimalloc v0.1.31 has just been released!
Version 0.1.31 of the Rust wrapper for the mimalloc memory allocator has just been released!
What are some alternatives?
jemalloc
rpmalloc - Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
snmalloc - Message passing based allocator
tbb - oneAPI Threading Building Blocks (oneTBB) [Moved to: https://github.com/oneapi-src/oneTBB]
rust - Empowering everyone to build reliable and efficient software.
Hoard - The Hoard Memory Allocator: A Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac.
hardened_malloc - Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platforms. It will gain more portability / integration over time.
factorio-docker - Factorio headless server in a Docker container
gperftools - Main gperftools repository
jemallocator - Rust allocator using jemalloc as a backend
rust-scudo
Mesh - A memory allocator that automatically reduces the memory footprint of C/C++ applications.