性能测试

这里测试两个线性代数方法:

  • solve,求解线性方程组
  • mul,矩阵乘法

测试矩阵大小从\(10 \times 10\)到\(5000 \times 5000\)

bench

local print = require('package.print').print
local plt = require('package.plot')
local mol = libminoptlab

local dim = {}
local t1,t2 = {},{}
local mindim,maxdim,step =10,5000,10

for n = mindim,maxdim,step do
	local A = mol.matrix.rand(n,n)
	local b = mol.matrix.rand(n,1)
	local T1 = mol.clock.new()
	local x = A:solve(b)
	table.insert(t1,T1:get())

	local T2 = mol.clock.new()
	local C = A:mul(A)
	table.insert(t2,T2:get())

	table.insert(dim,n)
	mol.gc()
end

local img1 = plt.line({{dim,t1}},{'solve'})
local img2 = plt.line({{dim,t2}},{'mul'})
local fw = plt.framework(111,'性能测试',{'dim','t'})

plt.show({{fw,{img1,img2}}})