I run another test, and I agree with @aplavin : The issue is related to CSV.jl.
@time using CSV, DataFrames
const input="""
time,ping
1,25.7
2,31.8
"""
function read_csv(in)
io = IOBuffer(in)
@time file = CSV.File(io)
@time df = DataFrame(file)
close(io)
df
end
df = read_csv(input)
Output:
julia> @time include("bench2.jl")
3.071134 seconds (7.53 M allocations: 454.289 MiB, 5.26% gc time, 67.56% compilation time)
11.473243 seconds (2.32 M allocations: 96.563 MiB, 99.98% compilation time)
0.106111 seconds (166.72 k allocations: 9.127 MiB, 99.85% compilation time)
19.250656 seconds (56.72 M allocations: 2.479 GiB, 6.03% gc time, 94.79% compilation time)
2×2 DataFrame
Row │ time ping
│ Int64 Float64
─────┼────────────────
1 │ 1 25.7
2 │ 2 31.8
11.5 of the 19.25s total time are related to calling CSV.File .