История изменений
Исправление LightDiver, (текущая версия) :
Смотри:
function utf8myLen2(s)
local count = 0
local len = #s
for i = 1, len do
local byte = string.byte(s, i)
-- Проверяем, что байт НЕ начинается с 10xxxxxx
if byte < 128 or byte >= 192 then
count = count + 1
end
end
return count
end
Вообще идея брать функции на си и переписывать их на луа - это то, с чего я начал. Но.
[38:25]Прошло: 0.0019999998621643
[38:26]Прошло: 1.0800000000745
[38:29]Прошло: 2.5789999999106
Так еще хуже, хотя тут разница не та, чтобы оценивать. Примерно одинаково с моим циклом.
Исправление LightDiver, :
Смотри:
function utf8myLen2(s)
local count = 0
local len = #s
for i = 1, len do
local byte = string.byte(s, i)
-- Проверяем, что байт НЕ начинается с 10xxxxxx
if byte < 128 or byte >= 192 then
count = count + 1
end
end
return count
end
Вообще идея брать функции на си и переписывать их на луа - это то, с чего я начал. Но.
[38:25]Прошло: 0.0019999998621643
[38:26]Прошло: 1.0800000000745
[38:29]Прошло: 2.5789999999106
Так еще хуже.
Исходная версия LightDiver, :
Смотри:
function utf8myLen2(s)
local count = 0
local len = #s
for i = 1, len do
local byte = string.byte(s, i)
-- Проверяем, что байт НЕ начинается с 10xxxxxx
if byte < 128 or byte >= 192 then
count = count + 1
end
end
return count
end
Вообще идея брать функции на си и переписывать их на луа - это то, с чего я начал. Но.
[31:09]Прошло: 0.0020000003278255
[31:11]Прошло: 1.9500000001863
[31:15]Прошло: 3.4199999999255
Так еще хуже.