checkpoint 2 - benchmark.1.json (22M) - open literally (benchmark-run 10 (tree-sitter-parser-root-node (tree-sitter-create-parser (current-buffer) (tree-sitter-json)))) RESULT: stuck, used all my memory (14G and still growing) (benchmark-run 1 (tree-sitter-parser-root-node (tree-sitter-create-parser (current-buffer) (tree-sitter-json)))) 17s, 3G memory. checkpoint 2 - benchmark.2.json (1.6M) - fundamental-mode (benchmark-run 1 (tree-sitter-parser-root-node (tree-sitter-create-parser (current-buffer) (tree-sitter-json)))) (1.039289 0 0.0) (benchmark-run 1000 (dotimes (_ 1000) (insert "1,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,\n")) (dotimes (_ 1000) (backward-delete-char (length "1,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,\n")))) With parser: (39.302071 8 4.3011029999999995) Without parser: (33.589416 8 4.405495999999999) Note: Warning (undo): Buffer ‘benchmark.2.json’ undo info was 27188988 bytes long. The undo info was discarded because it exceeded `undo-outer-limit'.