История изменений
Исправление LightDiver, (текущая версия) :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.
Получается, содержимое всетаки учитывается, но жестко оптимизируется. Значит всетаки есть смысл сжимать содержимое. Ок. Но нужно следить за структурами и не использовать лишнего.
Но заметь, разница ВСЕГО в 10 раз. Хотя в одном случае строки вот такого формата: ъыьДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSФХЦЧШЩЪЫЬЭЮЯabcdefghijklm"
А в другом просто 26 тысяч единиц. Не замечаешь беды?
И мне непонятно сколько занимает бул озу. Пишут, что 16 байт, а цифра по идее 8 байт. Или одинаково?
Исправление LightDiver, :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.
Получается, содержимое всетаки учитывается, но жестко оптимизируется. Значит всетаки есть смысл сжимать содержимое. Ок. Но нужно следить за структурами и не использовать лишнего.
Но заметь, разница ВСЕГО в 10 раз. Хотя в одном случае строки вот такого формата: ъыьДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSФХЦЧШЩЪЫЬЭЮЯabcdefghijklm"
А в другом просто 26 тысяч единиц. Не замечаешь беды?
И мне непонятно сколько занимает бул озу. Пишут, что 16 байт, а цифра по идее 8 байт. Или одинаково?
Не понял, что за бред?
for q = 1, 5 do
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
Должно создавать строку из 5 символов. А у меня строки вообще рандомные от 78 до 189 символов.
Исправление LightDiver, :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.
Получается, содержимое всетаки учитывается, но жестко оптимизируется. Значит всетаки есть смысл сжимать содержимое. Ок. Но нужно следить за структурами и не использовать лишнего.
Но заметь, разница ВСЕГО в 10 раз. Хотя в одном случае строки вот такого формата: ъыьДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSФХЦЧШЩЪЫЬЭЮЯabcdefghijklm"
А в другом просто 26 тысяч единиц. Не замечаешь беды?
И мне непонятно сколько занимает бул озу. Пишут, что 16 байт, а цифра по идее 8 байт. Или одинаково?
Исправление LightDiver, :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.
Получается, содержимое всетаки учитывается, но жестко оптимизируется. Значит всетаки есть смысл сжимать содержимое. Ок. Но нужно следить за структурами и не использовать лишнего.
Но заметь, разница ВСЕГО в 10 раз. Хотя в одном случае строки вот такого формата: ъыьДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSФХЦЧШЩЪЫЬЭЮЯabcdefghijklm"
А в другом просто 26 тысяч единиц. Не замечаешь беды?
Исправление LightDiver, :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.
Получается, содержимое всетаки учитывается, но жестко оптимизируется. Значит всетаки есть смысл сжимать содержимое. Ок. Но нужно следить за структурами и не использовать лишнего.
Исходная версия LightDiver, :
function testMem()
local shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = ""
for q = 1, 5 do
print(string.utf8sub(shablon,math.random(1,117),math.random(1,117)))
SAtest[i][j] = SAtest[i][j] .. string.utf8sub(shablon,math.random(1,118),math.random(1,118))
end
end
end
end
4790.455078125 кб
function testMem()
SAtest = {}
for i = 1,500 do
SAtest[i] = {}
for j = 1, 50 do
SAtest[i][j] = 1
end
end
end
451.4638671875 хммм.. Разница в 10 раз. Интересно.