The program is supposed to work well with large codebases, but in reality, that's not the case; it easily crashes with some popular open-source C++ projects.
Steps:
git clone https://gitlab.com/kicad/code/kicad
And indexing:
C:\codebase-memory-mcp cli index_repository "{\"repo_path\": \"/path/to/kicad\", \"persistence\": true, \"mode\": \"moderate\"}"
level=info msg=mem.init budget_mb=8159 total_ram_mb=16319
level=info msg=pipeline.discover files=4972 elapsed_ms=1550
level=info msg=pipeline.route path=full
level=info msg=pass.start pass=structure files=4972
level=info msg=pass.done pass=structure nodes=3979 edges=3952
level=info msg=pass.timing pass=structure elapsed_ms=36
level=info msg=pipeline.mode mode=parallel workers=8 files=4972
level=info msg=parallel.extract.start files=4972 workers=8
level=info msg=parallel.mem.budget total_mb=8159 per_worker_mb=1019
level=info msg=parallel.extract.file.start pos=5 size_kb=2936 path=translation/pofiles/ja.po
level=info msg=parallel.extract.file.start pos=3 size_kb=3075 path=qa_temp/data/triangulation/triangulation_status.json
level=info msg=parallel.extract.file.start pos=6 size_kb=2934 path=common/newstroke_font.cpp
level=info msg=parallel.extract.file.start pos=2 size_kb=3123 path=translation/pofiles/el.po
level=info msg=parallel.extract.file.start pos=1 size_kb=3179 path=translation/pofiles/en.po
level=info msg=parallel.extract.file.start pos=4 size_kb=2943 path=translation/pofiles/ta.po
level=info msg=parallel.extract.file.start pos=7 size_kb=2889 path=qa_temp/data/pcbnew/plugins/2581/testcase3-RevC-full.xml
level=info msg=parallel.extract.file.start pos=0 size_kb=9165 path=common/gal/opengl/bitmap_font_img.c
level=info msg=parallel.extract.file.done pos=4 elapsed_ms=508 defs=1 path=translation/pofiles/ta.po
level=info msg=parallel.extract.file.start pos=8 size_kb=2834 path=translation/pofiles/th.po
level=info msg=parallel.extract.file.done pos=5 elapsed_ms=644 defs=1 path=translation/pofiles/ja.po
level=info msg=parallel.extract.file.start pos=9 size_kb=2825 path=translation/pofiles/ru.po
level=info msg=parallel.extract.file.done pos=2 elapsed_ms=749 defs=1 path=translation/pofiles/el.po
level=info msg=parallel.extract.file.done pos=8 elapsed_ms=521 defs=1 path=translation/pofiles/th.po
level=info msg=parallel.extract.file.done pos=1 elapsed_ms=1202 defs=1 path=translation/pofiles/en.po
level=info msg=parallel.extract.file.start pos=10 size_kb=2788 path=translation/pofiles/bg.po
level=info msg=parallel.extract.file.done pos=9 elapsed_ms=593 defs=1 path=translation/pofiles/ru.po
level=info msg=parallel.extract.file.start pos=11 size_kb=2757 path=translation/pofiles/ka.po
level=info msg=parallel.extract.file.done pos=3 elapsed_ms=1362 defs=21466 path=qa_temp/data/triangulation/triangulation_status.json
level=info msg=parallel.extract.file.start pos=12 size_kb=2739 path=translation/pofiles/es_MX.po
level=info msg=parallel.extract.progress done=10 total=4972
level=info msg=parallel.extract.file.start pos=13 size_kb=2735 path=translation/pofiles/es.po
level=info msg=parallel.extract.file.start pos=14 size_kb=2674 path=translation/pofiles/uk.po
level=info msg=parallel.extract.file.done pos=6 elapsed_ms=1732 defs=2 path=common/newstroke_font.cpp
level=info msg=parallel.extract.file.done pos=10 elapsed_ms=596 defs=1 path=translation/pofiles/bg.po
level=info msg=parallel.extract.file.done pos=11 elapsed_ms=542 defs=1 path=translation/pofiles/ka.po
level=info msg=parallel.extract.file.start pos=15 size_kb=2635 path=translation/pofiles/te.po
level=info msg=parallel.extract.file.start pos=16 size_kb=2588 path=translation/pofiles/cs.po
level=info msg=parallel.extract.file.start pos=17 size_kb=2541 path=translation/pofiles/lt.po
level=info msg=parallel.extract.file.done pos=14 elapsed_ms=527 defs=1 path=translation/pofiles/uk.po
level=info msg=parallel.extract.file.done pos=13 elapsed_ms=671 defs=1 path=translation/pofiles/es.po
level=info msg=parallel.extract.file.start pos=18 size_kb=2535 path=translation/pofiles/pt_BR.po
level=info msg=parallel.extract.file.done pos=12 elapsed_ms=727 defs=1 path=translation/pofiles/es_MX.po
level=info msg=parallel.extract.file.start pos=19 size_kb=2530 path=translation/pofiles/hi.po
level=info msg=parallel.extract.file.start pos=20 size_kb=2503 path=translation/pofiles/de.po
level=info msg=parallel.extract.file.done pos=15 elapsed_ms=433 defs=1 path=translation/pofiles/te.po
level=info msg=parallel.extract.file.start pos=21 size_kb=2501 path=translation/pofiles/pl.po
level=info msg=parallel.extract.file.done pos=19 elapsed_ms=457 defs=1 path=translation/pofiles/hi.po
level=info msg=parallel.extract.file.done pos=17 elapsed_ms=653 defs=1 path=translation/pofiles/lt.po
level=info msg=parallel.extract.file.done pos=18 elapsed_ms=562 defs=1 path=translation/pofiles/pt_BR.po
level=info msg=parallel.extract.file.done pos=16 elapsed_ms=737 defs=1 path=translation/pofiles/cs.po
level=info msg=parallel.extract.progress done=20 total=4972
level=info msg=parallel.extract.file.start pos=22 size_kb=2477 path=translation/pofiles/pt.po
level=info msg=parallel.extract.file.start pos=23 size_kb=2461 path=translation/pofiles/fi.po
level=info msg=parallel.extract.file.done pos=21 elapsed_ms=528 defs=1 path=translation/pofiles/pl.po
level=info msg=parallel.extract.file.done pos=20 elapsed_ms=756 defs=1 path=translation/pofiles/de.po
level=info msg=parallel.extract.file.done pos=22 elapsed_ms=657 defs=1 path=translation/pofiles/pt.po
level=info msg=parallel.extract.file.done pos=23 elapsed_ms=641 defs=1 path=translation/pofiles/fi.po
level=info msg=parallel.extract.file.done pos=7 elapsed_ms=3748 defs=51440 path=qa_temp/data/pcbnew/plugins/2581/testcase3-RevC-full.xml
level=info msg=parallel.extract.progress done=30 total=4972
level=info msg=parallel.extract.file.done pos=0 elapsed_ms=5000 defs=0 path=common/gal/opengl/bitmap_font_img.c
level=info msg=parallel.extract.progress done=40 total=4972
level=info msg=parallel.extract.progress done=50 total=4972
level=info msg=parallel.extract.file.done pos=50 elapsed_ms=1148 defs=2 path=common/bitmap_info.cpp
level=info msg=parallel.extract.file.done pos=52 elapsed_ms=1212 defs=79 path=pcbnew/pcb_io/kicad_sexpr/pcb_io_kicad_sexpr_parser.cpp
level=info msg=parallel.extract.progress done=60 total=4972
level=info msg=parallel.extract.progress done=70 total=4972
level=info msg=parallel.extract.progress done=80 total=4972
level=info msg=parallel.extract.file.done pos=48 elapsed_ms=4086 defs=1 path=common/gal/opengl/SmaaAreaTex.h
level=info msg=parallel.extract.progress done=90 total=4972
level=info msg=parallel.extract.file.done pos=92 elapsed_ms=1077 defs=73 path=pcbnew/router/router_tool.cpp
level=info msg=parallel.extract.progress done=100 total=4972
level=info msg=parallel.extract.progress done=110 total=4972
level=info msg=parallel.extract.progress done=120 total=4972
level=info msg=parallel.extract.progress done=140 total=4972
level=info msg=parallel.extract.progress done=150 total=4972
level=info msg=parallel.extract.progress done=160 total=4972
level=info msg=parallel.extract.file.done pos=129 elapsed_ms=1540 defs=66 path=pcbnew/router/pns_shove.cpp
level=info msg=parallel.extract.progress done=170 total=4972
level=info msg=parallel.extract.progress done=180 total=4972
level=info msg=parallel.extract.progress done=130 total=4972
level=info msg=parallel.extract.progress done=190 total=4972
level=info msg=parallel.extract.file.done pos=162 elapsed_ms=1125 defs=51 path=pcbnew/router/pns_line_placer.cpp
level=info msg=parallel.extract.progress done=200 total=4972
level=info msg=parallel.extract.progress done=210 total=4972
level=info msg=parallel.extract.progress done=220 total=4972
level=info msg=parallel.extract.progress done=230 total=4972
level=info msg=parallel.extract.progress done=240 total=4972
level=info msg=parallel.extract.progress done=250 total=4972
level=info msg=parallel.extract.progress done=260 total=4972
level=info msg=parallel.extract.progress done=270 total=4972
level=
The same thing happens with other C++ projects if they are large enough.
Test with real-world C++ projects instead of a very clean C project like the Linux Kernel or projects that are too small.
The program is supposed to work well with large codebases, but in reality, that's not the case; it easily crashes with some popular open-source C++ projects.
Steps:
And indexing:
The same thing happens with other C++ projects if they are large enough.
Test with real-world C++ projects instead of a very clean C project like the Linux Kernel or projects that are too small.