【发布时间】:2015-09-16 03:10:16
【问题描述】:
在更大的 lua 脚本中,我必须复制几个表 dt:
for i=1,dt:nrow() do
local r = {}
for j=1,dt:ncol() do
r[j] = dt[i][j]
end
rslt:append(r)
end
这些表格大约有 50,000 行 x 25 列,主要包含双精度数。 luajit 大约是“标准”lua 的 10 倍。在我之前进行的所有其他计算/操作中,luajit 更快(1.5 到 3 倍)。
【问题讨论】:
-
您应该使用 FFI 数组对数字进行快速数据处理。除此之外,请检查
-jv和分析器的输出。 -
如果在进入外循环之前计算
dt:ncol()并将rslt:append(r)替换为更简单的代码或延迟会明显更快吗? -
我从 C++ 程序中的 lua 状态调用脚本。 FFI 数组不是选项,因为它也应使用“标准”lua 运行。
标签: memory lua lua-table luajit