ysbaddaden/dwarf.cr

★ 2Forks 1CrystalGitHub ↗Compare

README

DWARF

Experiment at optimizing the DWARF debug section parsers in the Crystal stdlib.

See crystal-lang/crystal#17120

A notable change is the use of scanners that avoid memory allocations instead of parsers that pre-parse everything and require lots of time and memory.

The final goal is to have a better implementation and more optimized tables, and a more efficient model overall, that consumes less CPU and RAM usage for the overall cases (dev or release, with/out full debug info).

The final implementation might keep the index tables (faster lookup, but slow to build), or dynamically lookup into the DWARF sections (no build, slow lookup) with a LRU cache (faster repeated lookups), or even adding a compilation step to inject the tables into the executable (no build, fast lookups).

Requires Crystal 1.21-dev or later.

Contributors

ysbaddaden

Issues