function read_n_per_row(file, n)
dat = Float64[]
for line in eachline(file), word in split(line)
push!(dat, parse(Float64, word))
end
l = length(dat)
iszero(l % n) || error("Number of file entries ", l, " not divisible by ", n)
m = l ÷ n
return transpose(reshape(dat, (n, m)))
end
using BenchmarkTools
@btime read_n_wrapped_floats2($file, $n); # 8.074 μs (87 allocations: 5.48 KiB)
@btime read_n_per_row($file, $n) # 6.747 μs (43 allocations: 4.07 KiB)
read_n_wrapped_floats2(file, n) == read_n_per_row(file, n) # true
1 Like