Skip to content

Commit 59e9176

Browse files
committed
Add some basic benchmarks
1 parent 2f72b12 commit 59e9176

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test/benchmark.jl

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using BenchmarkTools
2+
using JuliaSyntax
3+
4+
include("test_utils.jl")
5+
6+
function concat_base()
7+
basedir = joinpath(Sys.BINDIR, "..", "share", "julia", "base")
8+
io = IOBuffer()
9+
for f in find_source_in_path(basedir)
10+
write(io, read(f, String))
11+
println(io)
12+
end
13+
return String(take!(io))
14+
end
15+
16+
all_base_code = concat_base()
17+
18+
b_ParseStream = @benchmark JuliaSyntax.parse!(JuliaSyntax.ParseStream(all_base_code), rule=:toplevel)
19+
b_GreenNode = @benchmark JuliaSyntax.parseall(JuliaSyntax.GreenNode, all_base_code)
20+
b_SyntaxNode = @benchmark JuliaSyntax.parseall(JuliaSyntax.SyntaxNode, all_base_code)
21+
b_Expr = @benchmark JuliaSyntax.parseall(Expr, all_base_code)
22+
23+
@info "Benchmarks" ParseStream=b_ParseStream GreenNode=b_GreenNode SyntaxNode=b_SyntaxNode Expr=b_Expr
24+
25+
26+
# Allocation profiling
27+
#
28+
# using Profile.Allocs
29+
# using PProf
30+
# Allocs.clear()
31+
# stream = JuliaSyntax.ParseStream(text);
32+
# JuliaSyntax.peek(stream);
33+
# Allocs.@profile sample_rate=1 JuliaSyntax.parse(stream)
34+
# PProf.Allocs.pprof()

0 commit comments

Comments
 (0)