Skip to content

Commit bc00962

Browse files
perf: claude_optimization (rawsyscalln) in swift parser
Produced by Dyno run go_20260410_0345409355e7e, iteration 2. Dyno-Run: go_20260410_0345409355e7e Dyno-Iteration: 2 Dyno-Campaign: dart-parser-optimization Dyno-Project: clarity-cli Dyno-Worktree-SHA: 4819536e29bc20a42997cd040380efb9827ecec0 Dyno-Baseline-Wall-Ms: 2139 Dyno-Candidate-Wall-Ms: 1632 Dyno-Correctness: passed Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f112d55 commit bc00962

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

depgraph/languages/swift/parser_swift.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,23 @@ import (
55
"fmt"
66
"os"
77
"strings"
8+
"sync"
89

910
sitter "github.com/smacker/go-tree-sitter"
1011
"github.com/smacker/go-tree-sitter/swift"
1112
)
1213

14+
var (
15+
swiftLanguage = swift.GetLanguage()
16+
swiftParserPool = sync.Pool{
17+
New: func() any {
18+
parser := sitter.NewParser()
19+
parser.SetLanguage(swiftLanguage)
20+
return parser
21+
},
22+
}
23+
)
24+
1325
// SwiftImport represents an import in a Swift file.
1426
type SwiftImport struct {
1527
Path string
@@ -148,9 +160,14 @@ func ExtractSwiftTypeIdentifiers(sourceCode []byte) []string {
148160
}
149161

150162
func parseSwift(sourceCode []byte) (*sitter.Tree, error) {
151-
parser := sitter.NewParser()
152-
parser.SetLanguage(swift.GetLanguage())
153-
return parser.ParseCtx(context.Background(), nil, sourceCode)
163+
parser, _ := swiftParserPool.Get().(*sitter.Parser)
164+
if parser == nil {
165+
parser = sitter.NewParser()
166+
parser.SetLanguage(swiftLanguage)
167+
}
168+
tree, err := parser.ParseCtx(context.Background(), nil, sourceCode)
169+
swiftParserPool.Put(parser)
170+
return tree, err
154171
}
155172

156173
func isTopLevelSwiftDeclaration(node *sitter.Node) bool {

0 commit comments

Comments
 (0)