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几秒
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 的整数次幂,估计也会影响速度。