PDA

Просмотр полной версии : [Вопрос] Стоит ли записывать значение массива в переменную для оптимизации?



punkochel
03.02.2020, 16:46
Всем привет. Глядя на свой код я задумался, какой вариант будет работать быстрее и выглядеть более верным?

Вариант 1: Использование массива напрямую.

if(true)
{
SetVehiclePos(PlayerVehicleID[playerid], HouseInfo[PlayerInfo[playerid][pHouseID]][hCarPosX], HouseInfo[PlayerInfo[playerid][pHouseID]][hCarPosY], HouseInfo[PlayerInfo[playerid][pHouseID]][hCarPosZ]);
}



Вариант 2: Использование переменной, предварительно записав в нее данные с массива.

if(true)
{
new houseid = PlayerInfo[playerid][pHouseID];
SetVehiclePos(PlayerVehicleID[playerid], HouseInfo[houseid][hCarPosX], HouseInfo[houseid][hCarPosY], HouseInfo[houseid][hCarPosZ]);
}

DeimoS
03.02.2020, 16:50
*Чпок* (https://pro-pawn.ru/showthread.php?12585-%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BA%D0%BE%D0%B4%D0%B0-%D0%BD%D0%B0-Pawn-%28%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29)

punkochel
03.02.2020, 17:58
Второй вариант совсем на чуть чуть быстрее.

DeimoS
03.02.2020, 18:06
Именно. Ибо обращение к одиночной переменной будет быстрее, нежели к массиву. Так как обращение к массиву происходит не по прямому адресу (как в случае с переменной), а по адресу нулевой ячейки с прибавлением порядкового номера нужной ячейки.

Как я понимаю, ответ получен, так что закрыто.