Пишите код правильно
Всегда сохраняйте в памяти постоянно возобновляемые параметры, иначе
Пример:
Не стоит также забывать про кэширование математических функций: math.sin, math.cos и тп.
DistToSqr быстрее, чем Distance
При попытке создать элемент с "никаким" визуалом, не создавайте нулёвую функцию
Пример:
Зачем повторно ссылаться в скрипте? Просто используй
Пример:
Дискорд для связи: DarkFated#2147
table.insert и tabl[ #tabl + 1 ]
Lua:
-- медленне
local tabl = {}
table.insert( tabl, ... )
-- чем
local tabl = {}
tabl[ #tabl + 1 ] = ...
table.HasValue и tabl[ ... ]
Lua:
-- медленне
local tabl = { 'яблоко' }
table.HasValue( tabl, 'яблоко' )
-- чем
local tabl = { 'яблоко' }
tabl[ 'яблоко' ]
Возведение в степень
Lua:
-- медленне
local x = 2^5
-- чем
local x = 2*2*2*2*2
Кэширование
Всегда сохраняйте в памяти постоянно возобновляемые параметры, иначе
Пример:
Lua:
-- цвет
local color_white = Color(255,255,255)
vgui_element.Paint = function( self, w, h )
draw.RoundedBox( 0, 0, 0, w, h, color_white )
end
-- материал
local mat_icon_accept = Material( 'icon16/accept.png' )
-- и тп
string и table concat
Lua:
-- медленнее
local res = ''
local intab = {}
for k = 1, 50 do
res = res .. intab[ k ]
end
-- чем
local res = {}
local intab = {}
for k = 1, 50 do
res[ #res + 1 ] = intab[ k ]
end
res = table.concat( res )
Distance и DistToSqr
DistToSqr быстрее, чем Distance
Цикл таблицы
Lua:
local tabl = { 'красный', 'синий', 'розовый', 'белый' }
-- медленнее
for k, v in pairs( tabl ) do
...
end
-- чем
for k = 1, #tabl do
...
end
Функция Paint
При попытке создать элемент с "никаким" визуалом, не создавайте нулёвую функцию
Пример:
Lua:
-- неправильно
vgui_element.Paint = function( self, w, h )
end
-- правильно
vgui_element.Paint = nil
Кэширование вызова Convar'а
Зачем повторно ссылаться в скрипте? Просто используй
Пример:
Lua:
-- неправильно
CreateClientConVar( 'test', 1, true )
GetConVar( 'test' ):GetBool()
-- правильно
local test = CreateClientConVar( 'test', 1, true )
test:GetBool()
Дискорд для связи: DarkFated#2147
Последнее редактирование: