PDA

Просмотр полной версии : [Вопрос] Вопросы по оптимизации



kushichka
09.01.2015, 18:49
Хотел узнать мнение понимающих, так вот:

1. Зачем создаются функции аналоги стандартным? Такие как PlayerToPoint SendMes, SetPPos и прочее. Что лучше использовать, стандартные или вот такие "самопальные"?

2. Знаю что использование pragma dynamic не есть хорошо, ее ставят когда идет нехватка памяти, то есть переполнение стека. Если я прав, то тогда вопрос: как сделать так что бы убрать прагму? Как понять что где можно оптимизировать? Думаю что изменения размера string'а по всему моду на рациональные не даст уж такого большого прироста к оптимизации, но я особо и не знаю других методов. Говорят уменьшать MAX_PLAYERS, каким образом? Если его сделали значит оно нужно же?

3. Таймеры. Будет ли это нагрузкой если я создам таймер, допустим, в определенной команде, который будет работать только когда команду вызовут и только на того кто вызовет?

4. Зачем используют глобальный string, а потом некоторых местах создают локальные? Лучше иметь один глобальный string или постоянно локальные создавать?


*надеюсь хоть на что-то получить ответ

Mazzilla
09.01.2015, 19:28
Хотел узнать мнение понимающих, так вот:

1. Зачем создаются функции аналоги стандартным? Такие как PlayerToPoint SendMes, SetPPos и прочее. Что лучше использовать, стандартные или вот такие "самопальные"?

2. Знаю что использование pragma dynamic не есть хорошо, ее ставят когда идет нехватка памяти, то есть переполнение стека. Если я прав, то тогда вопрос: как сделать так что бы убрать прагму? Как понять что где можно оптимизировать? Думаю что изменения размера string'а по всему моду на рациональные не даст уж такого большого прироста к оптимизации, но я особо и не знаю других методов. Говорят уменьшать MAX_PLAYERS, каким образом? Если его сделали значит оно нужно же?

3. Таймеры. Будет ли это нагрузкой если я создам таймер, допустим, в определенной команде, который будет работать только когда команду вызовут и только на того кто вызовет?

4. Зачем используют глобальный string, а потом некоторых местах создают локальные? Лучше иметь один глобальный string или постоянно локальные создавать?


*надеюсь хоть на что-то получить ответ
1. Автор мода таким способом ускоряет написание некоторых функций. Добавляют в сток дополнительные действия, которые используются после стандартных функций, и так далее.
2. Оптимизируйте массивы - некоторые используют только часть созданного массива. Оптимизируйте циклы - некоторые создают циклы, которые не нужны, либо после определенного действия не обрывают цикл. MAX_PLAYERS можно уменьшить таким способом:
вставляем в начало мода

#undef MAX_PLAYERS
const MAX_PLAYERS = 100;
Тем самым MAX_PLAYERS будет равно не 500, а 100 - значительная разгрузка некоторых циклов?
3. Сам таймер не несёт за собой особой нагрузки, нагружают действия, используемые в таймере, особенно при неправильном использовании функций.
4. Лучше создавать локальные с точно посчитанным размером.

kaZax
10.01.2015, 00:45
1. Скорее всего свой функций пишутся для удобства кто пишет код. Например при телепортаций вы устанавливаете позицию, интерьер, вирт.мир. Для того чтобы каждый раз не писать 3 строк кода создаются свой функций:


На примере макроса:
#define SetPlayerPosEx(%0,%1,%2,%3,%4,%5) \
SetPlayerPos(%0,%1,%2,%3), SetPlayerInterior(%0,%4), SetPlayerVirtualWorld(%0,%5)

4. Глобальные переменные создают только в тех случаях когда нужно записывать/использовать переменную во всех частях кода.
Локальные создаются тогда когда он нужен вам внутри функций/каллбека.