LINUX.ORG.RU

История изменений

Исправление Jopich1, (текущая версия) :

нет просто lua5.3 из консоли ( ну или через lua-nginx). Натравливаешь достаточно большую простыню текста и сравниваешь по времени:

function test(data)
    local ndata = {}
    for row in data:gmatch("[^\r\n]+") do
         table.insert(ndata, row)
         table.insert(ndata,"\n")
    end
    return table.concat(ndata)
end
function test(data)
    local ndata = ""
    for row in data:gmatch("[^\r\n]+") do
         ndata = ndata .. row .. "\n"
    end
    return ndata
end

Какая тебе разница какая там скорость?

Я тоже думал «какая» пока nginx ( с emebd lua ) не уперся в потолок по процессору. Уже и на регэкспы грешил - а оказалось все проще - просто склеивание строк жутко медленно работает.

Исходная версия Jopich1, :

нет просто lua5.3 из консоли ( ну или через lua-nginx). Натравливаешь достаточно большую простыню текста и сравниваешь по времени:

function test(data)
    local ndata = {}
    for row in data:gmatch("[^\r\n]+") do
         table.insert(ndata, row)
         table.insert(ndata,"\n")
    end
    return table.concat(ndata)
end
function test(data)
    local ndata = ""
    for row in data:gmatch("[^\r\n]+") do
         ndata = ndata .. row .. "\n"
    end
    return ndata
end