gpt4 book ai didi

performance - 在 Julia 中更快地读取 CSV 文件

转载 作者:行者123 更新时间:2023-12-03 14:21:08 25 4
gpt4 key购买 nike

我注意到使用 CSV.read 加载 CSV 文件很慢。
作为引用,我附上一个时间基准示例:

using CSV, DataFrames
file = download("https://github.com/foursquare/twofishes")
@time CSV.read(file, DataFrame)

Output:
9.450861 seconds (22.77 M allocations: 960.541 MiB, 5.48% gc time)
297 rows × 2 columns
这是一个随机数据集,与 Julia 相比,此类操作的 Python 替代品编译时间很短。既然 julia 比 python 快,为什么这个操作需要这么多时间?此外,有没有更快的替代方法来减少编译时间?

最佳答案

您正在与运行时一起测量编译。
测量时间的一种正确方法是:

@time CSV.read(file, DataFrame)
@time CSV.read(file, DataFrame)
在第一次运行时,该函数会在第二次运行时编译,您可以使用它。
另一种选择是使用 BenchmarkTools :
using BenchmarkTools
@btime CSV.read(file, DataFrame)
通常,人们使用 Julia 来处理庞大的数据集,因此单个初始编译时间并不重要。但是,可以将 CSV 和 DataFrame 编译到 Julia 的系统镜像中,并且从第一次运行就可以快速执行,有关非结构的信息,请参见此处: Why julia takes long time to import a package? (然而这是更高级的通常不需要它)
您还有另一种选择,即降低编译器的优化级别(这适用于您的工作负载较小且频繁重新启动并且您不希望图像构建带来的所有复杂性的情况。在这个笼子中,您将运行 Julia 作为:
julia --optimize=0 my_code.jl
最后,就像@Oscar Smith 在即将发布的 Julia 1.6 中提到的那样,编译时间会稍微短一些。

关于performance - 在 Julia 中更快地读取 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65660180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com