-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.schema.json
More file actions
82 lines (82 loc) · 3.43 KB
/
Copy pathindex.schema.json
File metadata and controls
82 lines (82 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "MiniMalloc",
"description": "MiniMalloc is a learning-oriented C++ concurrent memory pool inspired by Google tcmalloc, implementing the ThreadCache → CentralCache → PageCache architecture with ~1,500 lines of code.",
"url": "https://github.com/ruijayfeng/minimalloc",
"programmingLanguage": "C++11",
"license": "https://opensource.org/licenses/MIT",
"operatingSystem": "Windows"
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What does MiniMalloc do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "MiniMalloc is a concurrent memory allocator that uses a three-tier cache architecture (ThreadCache → CentralCache → PageCache) with size-class-based allocation and span management, similar to Google tcmalloc."
}
},
{
"@type": "Question",
"name": "Who is MiniMalloc for?",
"acceptedAnswer": {
"@type": "Answer",
"text": "C++ students and developers who want to learn how production allocators like tcmalloc and jemalloc work, through about 1,500 lines of well-commented code."
}
},
{
"@type": "Question",
"name": "How is MiniMalloc different from tcmalloc?",
"acceptedAnswer": {
"@type": "Answer",
"text": "tcmalloc is a full production allocator with platform-specific optimizations and complex fallback strategies. MiniMalloc strips it down to core ideas: TLS per-thread caches, size-class free lists, and span-based page management."
}
},
{
"@type": "Question",
"name": "What are the system requirements for MiniMalloc?",
"acceptedAnswer": {
"@type": "Answer",
"text": "C++11 or later, Windows (Win64, uses VirtualAlloc/VirtualFree), MSVC 2022+, and optionally CMake 3.16+ for CLI builds."
}
},
{
"@type": "Question",
"name": "How do I build MiniMalloc?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Open MiniMalloc.slnx in Visual Studio 2022+, or use CMake: cmake -B build -G \"Visual Studio 17 2022\" && cmake --build build --config Release."
}
},
{
"@type": "Question",
"name": "What size ranges does MiniMalloc support?",
"acceptedAnswer": {
"@type": "Answer",
"text": "MiniMalloc supports allocations from 1 byte to 256 KB across five size-class tiers: 1-128B (8B alignment), 129-1024B (16B alignment), 1-8KB (128B alignment), 8-64KB (1KB alignment), and 64-256KB (8KB alignment)."
}
},
{
"@type": "Question",
"name": "When should I NOT use MiniMalloc?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For production workloads, use established allocators like tcmalloc, jemalloc, or mimalloc which have crash recovery, memory safety, and extensive testing. MiniMalloc is designed for learning and experimentation."
}
},
{
"@type": "Question",
"name": "Is MiniMalloc available on Linux?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Currently MiniMalloc is Windows-only, using VirtualAlloc/VirtualFree. Linux support with mmap/sbrk is planned but not yet implemented."
}
}
]
}
]