saqut-compiler/build
abdussamedulutas 2b9888c021 perf(tokenizer): switch dispatch + unordered_map keyword lookup
Önceki: for döngüsü içinde her token için include() 63 kez çağrılıyordu
        → 66.9M include() çağrısı, zamanın %81'i

Sonraki:
  - Operatör/delimiter: switch(c0) + getchar(1) ile O(1) dispatch
  - Keyword: readIdentifier() → unordered_map::find() O(1) lookup
  - include() yalnızca // /* */ için (2-3 çağrı/yorum satırı)

Sonuç (2.3MB, 90K satır, debug build):
  tokens: 11.5s → 2.4s  (−79%)
  check:  12.7s → 3.7s  (−71%)

gprof ÖNCE: %81 include() (66.9M çağrı)
gprof SONRA: include() %0.00 — artık ölçülemez

Profil dosyaları: docs/perf-before.txt, docs/perf-after.txt

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 18:35:10 +03:00
..
CMakeFiles feat(faz2): sembol tablosu — isim çözümleme + scope + referans toplama (#71) 2026-06-18 15:43:26 +03:00
.ninja_deps perf(tokenizer): switch dispatch + unordered_map keyword lookup 2026-06-18 18:35:10 +03:00
.ninja_log perf(tokenizer): switch dispatch + unordered_map keyword lookup 2026-06-18 18:35:10 +03:00
CMakeCache.txt feat(faz2): sembol tablosu — isim çözümleme + scope + referans toplama (#71) 2026-06-18 15:43:26 +03:00
build.ninja feat(faz3): semantik analiz — tip denetimi + yapısal doğrulama (#72) 2026-06-18 17:20:06 +03:00
cmake_install.cmake Gemini 2026-05-27 10:29:30 +03:00