From 6a45a2fdf5014431f0f1c2634be7aca243402472 Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Tue, 4 Oct 2016 15:51:16 -0400 Subject: [PATCH 1/2] serialization benchmarks --- src/io/IOBenchmarks.jl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/io/IOBenchmarks.jl b/src/io/IOBenchmarks.jl index 372bddc7..e86acada 100644 --- a/src/io/IOBenchmarks.jl +++ b/src/io/IOBenchmarks.jl @@ -30,4 +30,28 @@ testbuf = IOBuffer(randstring(10^4)) g["read"] = @benchmarkable perf_read!($testbuf) g["readstring"] = @benchmarkable readstring($testbuf) +################################# +# serialization (#18633, #7893) # +################################# + +g = addgroup!(SUITE, "serialization", ["buffer", "string"]) + +function serialized_buf(x) + io = IOBuffer() + serialize(io, x) + return io +end + +teststrings = [randstring(32) for i=1:10^3] +teststrings_buf = serialized_buf(teststrings) + +g["serialize", "Vector{String}"] = @benchmarkable serialize(io, $teststrings) setup=(io=IOBuffer()) +g["deserialize", "Vector{String}"] = @benchmarkable deserialize($teststrings_buf) setup=(seek($teststrings_buf, 0)) + +testdata = rand(1000,1000) +testdata_buf = serialized_buf(testdata) + +g["serialize", "Matrix{Float64}"] = @benchmarkable serialize(io, $testdata) setup=(io=IOBuffer()) +g["deserialize", "Matrix{Float64}"] = @benchmarkable deserialize($testdata_buf) setup=(seek($testdata_buf, 0)) + end # module From bbf3ae0e140035c58637bba73318ef526a600e5b Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Tue, 4 Oct 2016 16:09:35 -0400 Subject: [PATCH 2/2] use deterministic pseudorandom data in io benchmarks --- src/io/IOBenchmarks.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/io/IOBenchmarks.jl b/src/io/IOBenchmarks.jl index e86acada..55a7ab2f 100644 --- a/src/io/IOBenchmarks.jl +++ b/src/io/IOBenchmarks.jl @@ -25,7 +25,7 @@ end g = addgroup!(SUITE, "read", ["buffer", "stream", "string"]) -testbuf = IOBuffer(randstring(10^4)) +testbuf = IOBuffer(randstring(RandUtils.SEED, 10^4)) g["read"] = @benchmarkable perf_read!($testbuf) g["readstring"] = @benchmarkable readstring($testbuf) @@ -42,13 +42,13 @@ function serialized_buf(x) return io end -teststrings = [randstring(32) for i=1:10^3] +teststrings = [randstring(RandUtils.SEED, 32) for i=1:10^3] teststrings_buf = serialized_buf(teststrings) g["serialize", "Vector{String}"] = @benchmarkable serialize(io, $teststrings) setup=(io=IOBuffer()) g["deserialize", "Vector{String}"] = @benchmarkable deserialize($teststrings_buf) setup=(seek($teststrings_buf, 0)) -testdata = rand(1000,1000) +testdata = rand(RandUtils.SEED,1000,1000) testdata_buf = serialized_buf(testdata) g["serialize", "Matrix{Float64}"] = @benchmarkable serialize(io, $testdata) setup=(io=IOBuffer())