Hasty Briefsbeta

Bilingual

How to Allocate Memory

2 days ago
  • #data-structures
  • #memory-optimization
  • #performance
  • Rethinking memory allocation can lead to significant speed improvements (2-20×).
  • Avoid generic memory allocation; allocate specific data structures based on usage patterns.
  • Consider alternative data structures (e.g., trie instead of hash tables) for better memory allocation strategies.
  • Use separate allocators for different data structures or usage patterns to improve performance.
  • Wrap malloc calls in type-specific functions for better profiling and management.
  • Operating systems provide tools like mmap for allocating contiguous virtual memory (pages).
  • Stack allocation can be optimized using tools like alloca or sbrk for multiple stacks.
  • Buddy allocators are effective for managing arrays, especially for operations like copying, extending, and slicing.
  • Reference counting can optimize memory management for arrays and recursive data structures.
  • Class-based object allocation with separate free lists minimizes fragmentation and improves efficiency.
  • Garbage collection strategies can be implemented without pauses by controlling collection steps per allocation.