Всем привет. Дело было вечером, делать было нечего.
Написал простенький скрипт, для сравнения скорости.
Массив же быстрее PVar? На кой фиг его (PVar) тогда вообще использовать?
Не раз натыкался на рекомендации, использовать PVar вместо массива, якобы быстрее работает.
Цикл первый - массив. Цикл второй - PVar.
Код скрипта
PHP код:
#include <a_samp>
main() return true;
new pertest[MAX_PLAYERS], allinfo[3][2], allvs;
public OnGameModeInit() return vs();
stock vs(){
if(allvs > 99) return true;
allvs++;
allinfo[2][0] = GetTickCount();
for(new i1; i1 < 500000; i1++) pertest[0] = 0;
allinfo[1][0] = GetTickCount() - allinfo[2][0], allinfo[2][1] = GetTickCount();
for(new i2 = 0; i2 < 500000; i2 ++) SetPVarInt(0, "i2", 0);
allinfo[1][1] = GetTickCount() - allinfo[2][1];
if(allinfo[1][0] < allinfo[1][1]) printf("Цикл 1 выполнен за %d ms. Цикл 2 выполнен за %d ms | Цикл 1 быстрее %d ms.", allinfo[1][0], allinfo[1][1], allinfo[1][1]-allinfo[1][0]), allinfo[0][0]++;
else if(allinfo[1][0] > allinfo[1][1]) printf("Цикл 1 выполнен за %d ms. Цикл 2 выполнен за %d ms | Цикл 2 быстрее на %d ms.", allinfo[1][0], allinfo[1][1], allinfo[1][0]-allinfo[1][1]), allinfo[0][1]++;
else printf("Цикл 1 выполнен за %d ms. Цикл 2 выполнен за %d ms | Скорость циклов равна.", allinfo[1][0], allinfo[1][1]);
return printf("Score: Цикл 1: %d | Цикл 2: %d.", allinfo[0][0], allinfo[0][1]), vs();
}
Вопрос выделен красным цветом.
Сток вызывает сам себя 100 раз, для теста.