Модуль:Lab/Stas/1

Материал из Справочника наблюдателя
Перейти к:навигация, поиск

(i)      Описание модуля[]


Тестирование производительности

calibrate 0.0810
test 0.2073
calibrate 0.0709
calibrate 0.0705
test2 0.2201
calibrate 0.0693

local p = {}

local count =   8000000
--            ⌊ ⌋⌊ ⌋⌊ ⌋
--            ⌈ ⌉⌈ ⌉⌈ ⌉
local countT=  20000000

local aleph
local bet = ''
local gimel = [[тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст
тексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттексттекст]]

function runTest (f, n)
	local a = os.clock ()
	return f(n) .. ' || ' .. string.format( '%7.4f', os.clock () - a)
end 
function p.Main (frame)
	local out = ''
	local fu = 'test'
	if frame.args [1] then
		fu = fu .. frame.args[1]
	end
	if frame.args[2] then
		count = 0 + frame.args[2]
	end
	out = out .. '\n|-\n| ' .. runTest (calibrate, countT) 
	out = out .. '\n|-\n| ' .. runTest (_G[fu]   , count )
	out = out .. '\n|-\n| ' .. runTest (calibrate, countT)
	return (out)  --frame:preprocess 
end

function calibrate (n)
	for i = 1,n do
		local x = i
	end
	return 'calibrate'
end

function test (n)
	for i = 1,n do
		if (aleph or '') == '' then end
		if (bet   or '') == '' then end
		if (gimel or '') == '' then end
	end
	return 'test'
end

function test2 (n)
	for i = 1,n do
		if (aleph == nil) or (aleph == '') then end
		if (bet   == nil) or (bet   == '') then end
		if (gimel == nil) or (gimel == '') then end
	end
	return 'test2'
end

return p