Оптимизация кода

Без jit на Core i7 3770K @ 3.5GHz, 16Gb RAM:
Код:
Time 1 1251 -10000000
Time 2 1440 -10000000
Time 3 1628 -10000000
Time 4 748 -10000000
Time 5 572 -10000000
Time 6 808 -10000000
С jit:
Код:
Time 1 327 -10000000
Time 2 616 -10000000
Time 3 609 -10000000
Time 4 222 -10000000
Time 5 212 -10000000
Time 6 403 -10000000
Reply

AMD FX8120 (при частоте порядка 1,1-1,3GHz)
Код:
[22:26:24] Time 1 1923 -10000000
[22:26:27] Time 2 2865 -10000000
[22:26:30] Time 3 3099 -10000000
[22:26:31] Time 1 1123 -10000000
[22:26:32] Time 2 897 -10000000
[22:26:33] Time 3 1324 -10000000

[22:26:38] Time 1 1978 -10000000
[22:26:41] Time 2 2863 -10000000
[22:26:44] Time 3 3129 -10000000
[22:26:45] Time 1 1096 -10000000
[22:26:46] Time 2 950 -10000000
[22:26:48] Time 3 1382 -10000000

[22:26:54] Time 1 1919 -10000000
[22:26:58] Time 2 3283 -10000000
[22:27:01] Time 3 3533 -10000000
[22:27:02] Time 1 1048 -10000000
[22:27:03] Time 2 897 -10000000
[22:27:04] Time 3 1288 -10000000
с jit
Код:
[22:35:17] Time 1 663 -10000000
[22:35:18] Time 2 1107 -10000000
[22:35:19] Time 3 1070 -10000000
[22:35:20] Time 1 511 -10000000
[22:35:20] Time 2 463 -10000000
[22:35:21] Time 3 808 -10000000

[22:35:25] Time 1 666 -10000000
[22:35:26] Time 2 1105 -10000000
[22:35:27] Time 3 1059 -10000000
[22:35:27] Time 1 516 -10000000
[22:35:28] Time 2 458 -10000000
[22:35:29] Time 3 810 -10000000

[22:35:31] Time 1 663 -10000000
[22:35:33] Time 2 1104 -10000000
[22:35:34] Time 3 1070 -10000000
[22:35:34] Time 1 515 -10000000
[22:35:35] Time 2 461 -10000000
[22:35:35] Time 3 803 -10000000
боюсь что бы процессор работал на полную мощность его нужно чем-то загрузит или в биосе принудительно отключить автонастройку мощности.
Reply

Что конкретно делает #pragma unused и когда стоит это использовать?
Reply

Quote:
Originally Posted by exdev
Посмотреть сообщение
Что конкретно делает #pragma unused и когда стоит это использовать?
Объявляет компилятору что переменная не будет использоваться и тем самым убирает предупреждение о неиспользуемой переменной.
Reply

А локальные переменные и массивы очищаются из памяти после выполнения функции / коллбэка?
Reply

Quote:
Originally Posted by exdev
Посмотреть сообщение
А локальные переменные и массивы очищаются из памяти после выполнения функции / коллбэка?
естественно.
Reply

Скажите, влияют ли ГЛОБАЛЬНЫЕ массивы на стек сервера?
Reply

Quote:
Originally Posted by Slava[LSW]
View Post
Скажите, влияют ли ГЛОБАЛЬНЫЕ массивы на стек сервера?
Необязательно капсом, люди тут не слепые. А как они могут влиять на стек?
Reply

Quote:
Originally Posted by Slava[LSW]
View Post
Скажите, влияют ли ГЛОБАЛЬНЫЕ массивы на стек сервера?
нет, но и пихать в них все не надо.
Reply

Спасибо. А можно, например, для чтения большого файла использовать один большой глобальный массив (к примеру, 600 ячеек)? Чтобы каждый раз его не создавать.
Reply

Конечно, хоть массив new tmp[1000][1000][1000].
Reply

Quote:
Originally Posted by Slava[LSW]
View Post
Спасибо. А можно, например, для чтения большого файла использовать один большой глобальный массив (к примеру, 600 ячеек)? Чтобы каждый раз его не создавать.
Quote:
Originally Posted by White_116
View Post
Конечно, хоть массив new tmp[1000][1000][1000].
только помните что глобальные массивы влияют на размер AMX файла, и при его достижении 800Mb сервер не запустится.
ЗЫ При 400Mb запускается минут 15
Reply

На данный момент он весит 632Kb.
Reply

Quote:
Originally Posted by Stepashka
View Post
только помните что глобальные массивы влияют на размер AMX файла, и при его достижении 800Mb сервер не запустится.
ЗЫ При 400Mb запускается минут 15
Это я знаю, сам компилировал, амх по 150Mb весил.
Reply

Quote:
Originally Posted by Stepashka
View Post
только помните что глобальные массивы влияют на размер AMX файла, и при его достижении 800Mb сервер не запустится.
ЗЫ При 400Mb запускается минут 15
А он точно так долго запускается из за размера массива?)
150 мегабайтный пустой мод всего с одной функцией и буфером для нее, запускается секунд 10.
Reply

Quote:
Originally Posted by Stepashka
View Post
только помните что глобальные массивы влияют на размер AMX файла, и при его достижении 800Mb сервер не запустится.
ЗЫ При 400Mb запускается минут 15
а не глобальные - не влияют?
Reply

Quote:
Originally Posted by Jon_De
View Post
а не глобальные - не влияют?
они в стеке.
Reply

Очистка значений глобальных массивов после использования что-нибудь даёт в оптимизации?
Reply

Quote:
Originally Posted by XemyL
Посмотреть сообщение
Очистка значений глобальных массивов после использования что-нибудь даёт в оптимизации?
нет.
Reply

Ещё вопрос в догонку.)

Один человек утверждает что:
"При вызове функции с содержанием локальной переменной создаётся её копия
stock tt() { new tt = 1; printf( "%d", tt ) ; }
То при каждом вызове
Создаст копию tt
И займёт память в стеке"

Серьёзно?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)