julia写入excel 性能如何优化

using DataFrames
import XLSX
df = DataFrame(rand(1:10, 50000, 60), :auto)
XLSX.writetable(“df.xlsx”, collect(DataFrames.eachcol(df)), DataFrames.names(df))

写入300万条数据 用了80多秒 python只用了20几秒

你python用的啥,我转成pandas dataframe用to_excel跟julia差不多

建议用数据库系统而不是普通的文件……

python 用的pyexcelerate 写入性能比较好
pip install pyexcelerate

稍微测了下。应该是临时内存分配太多了,峰值占用大概有 4GB~。
输出的文件一共才 8MB~,这是用了多少临时变量。

julia> @btime XLSX.writetable("df.xlsx", collect(DataFrames.eachcol(df)), DataFrames.names(df); overwrite=true)
  90.089 s (202682773 allocations: 97.47 GiB)

Procmon 显示它是 大约每 32 KB 写入一次,而且没对齐到 2 的整数次幂,估计也会影响速度。