LuaJIT 2.1 的 git 仓库中已经提供了一个集成的低开销的统计的 Profiler 。详细介绍请看这里。
下面是一些使用的例子:
$ luajit -jp spectralnorm.lua 4000 53% A 24% Av 23% Atv $ luajit -jp=s spectralnorm.lua 4000 53% A <- 50% Av <- 50% Atv 24% Atv <- 100% AtAv 23% Av <- 100% AtAv $ luajit -jp=l2 spectralnorm.lua 4000 33% spectralnorm.lua:21 < spectralnorm.lua:28 33% spectralnorm.lua:13 < spectralnorm.lua:27 13% spectralnorm.lua:7 < spectralnorm.lua:13 12% spectralnorm.lua:7 < spectralnorm.lua:21 5% spectralnorm.lua:6 < spectralnorm.lua:21 4% spectralnorm.lua:6 < spectralnorm.lua:13 $ luajit -jp=a spectralnorm.lua 4000 ====== spectralnorm.lua ====== <at> <at> 3 <at> <at> | -- contributed by Mike Pall | | local function A(i, j) 10% | local ij = i+j-1 25% | return 1.0 / (ij * (ij-1) * 0.5 + i) | end | | local function Av(x, y, N) | for i=1,N do | local a = 0 32% | for j=1,N do a = a + x[j] * A(i, j) end | y[i] = a | end | end <at> <at> 18 <at> <at> | local function Atv(x, y, N) | for i=1,N do | local a = 0 32% | for j=1,N do a = a + x[j] * A(j, i) end | y[i] = a | end | end
暂无更多评论