LINUX.ORG.RU

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

Исправление 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 раз. Интересно.