Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Lua
Тип:
Наработка
Версия Warcraft:
Reforged
Показывает текущее потребление памяти lua и позволяет вызывать collectgarbage из чата. Единицы измерения Kb.
Настройка
local IS_VISIBLE = true -- is visible on map start
Вызов функции: -garbage <argument>
  • show - показывает фрэйм
  • hide - скрывает фрэйм
  • collect - запускает сборщик мусора
  • stop - останавливает сборщик мусора
  • restart - перезапускает сборщик мусора
  • count - выводит в чат текущее значение потребления памяти
  • isrunning - выводит в чат запущен ли сборщик
Код
do
	local IS_VISIBLE        = true -- is visible on map start
	local InitGlobalsOrigin = InitGlobals
	function InitGlobals()
		InitGlobalsOrigin()
		
		local GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
		local menu    = BlzCreateFrame('LoadingPlayerSlot', GAME_UI, 0, 0)
		BlzFrameSetSize(menu, 0.256, 0.0217)
		BlzFrameSetPoint(menu, FRAMEPOINT_BOTTOM, GAME_UI, FRAMEPOINT_BOTTOM, 0, 0.16)
		BlzFrameSetVisible(menu, IS_VISIBLE)
		
		local left  = BlzGetFrameByName('LoadingPlayerSlotName', 0)
		local right = BlzGetFrameByName('LoadingPlayerSlotRace', 0)
		BlzFrameSetVisible(BlzGetFrameByName('LoadingPlayerSlotReadyHighlight', 0), true)
		
		local ChatTrigger = CreateTrigger()
		for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
			TriggerRegisterPlayerChatEvent(ChatTrigger, Player(i), '-', false)
		end
		
		TriggerAddAction(ChatTrigger, function()
			local param = {}
			for w in GetEventPlayerChatString():gmatch('[^%%s]+') do
				table.insert(param, w)
			end
			if param[1] ~= '-garbage' then return end
			local arg = param[2]
			if arg == 'collect' or arg == 'stop' or arg == 'restart' then
				print('collectgarbage(' .. arg .. ')')
				collectgarbage(arg)
			elseif arg == 'count' or arg == 'isrunning' or arg == 'step' then
				print('collectgarbage(' .. arg .. ') -->', collectgarbage(arg))
			elseif arg == 'show' then
				BlzFrameSetVisible(menu, true)
			elseif arg == 'hide' then
				BlzFrameSetVisible(menu, false)
			end
		end)
		
		local t = CreateTimer()
		TimerStart(t, 0.025, true, function()
			BlzFrameSetText(left, math.ceil(collectgarbage('count')))
			BlzFrameSetText(right, math.ceil(os.clock()))
		end)
	end
end

Скачать

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
24
5 лет назад
3
Красота. Еще бы возможность скрыть и показать фрейм командой и константу для изменения стартового состояния фрейма - чтобы не надо было код убирать когда фрейм не нужен.
0
32
5 лет назад
0
Гратц, вот и хендел каунтер 131
Только я так и не понял, что за память он считает? чисто память потребления луа без учета вариковской? варик же 130 метров минимум кушает, а тут 1,5 метра всего
0
24
5 лет назад
0
Bergi_Bear, Только память занятая луа - у луа нет доступа к информации о какой-то другой памяти.
0
29
5 лет назад
0
Еще бы возможность скрыть и показать фрейм командой и константу для изменения стартового состояния фрейма - чтобы не надо было код убирать когда фрейм не нужен.
Придумаешь красивые имена к -garbage <argument>, запилю))
0
32
5 лет назад
0
Придумаешь красивые имена к -garbage <argument>, запилю))
-garbage show
-garbage hide
0
23
5 лет назад
0
-garbage install express mysql
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.