Для более подробного описания комментария приведен пример теста (дополнительно показывающий, как вы можете выполнять такие тесты самостоятельно).
Сначала создайте несколько случайных тестовых данных:
open("testdata.txt", "w") do f
for i in 1:10^6
println(f, "a"^100)
end
end
Мы хотим прочитать данные четырьмя способами (и рассчитать общую длину строк):
f1() = sum(length(l) for l in readlines("testdata.txt"))
f2() = sum(length(l) for l in eachline("testdata.txt"))
function f3()
s = 0
open("testdata.txt") do f
while !eof(f)
s += length(readline(f))
end
end
s
end
function f4()
s = 0
for c in read("testdata.txt", String)
s += c != '\n' # assume Linux for simplicity
end
s
end
Теперь мы сравним производительность и использование памяти данными опциями:
julia> using BenchmarkTools
julia> @btime f1()
239.857 ms (2001558 allocations: 146.59 MiB)
100000000
julia> @btime f2()
179.480 ms (2001539 allocations: 137.59 MiB)
100000000
julia> @btime f3()
189.643 ms (2001533 allocations: 137.59 MiB)
100000000
julia> @btime f4()
158.055 ms (13 allocations: 96.32 MiB)
100000000
Если вы запустите его на своем компьютере, вы должны получить аналогичные результаты.