Re: Оптимизация кода -
eakwarp - 11.06.2010
Кстати, никто не задумывался сформировать перечень основных правил и принципов оптимизации?(Я именно самп имею ввиду если кто не понял.)
Re: Оптимизация кода -
MX_Master - 12.06.2010
Чтобы сделать список решений, нужно иметь список четких задач. Предыдущая задача по оптимизации циклов перебора игроков, это всего лишь одна из многих, которые сначала нужно обозначить и назвать.
Есть одна оптимизация, которой никто почти не следует - оптимизация вида кода (: отступы, коменты, последовательность, группы, описания функций в коментах, правильные переносы и т.д.
Re: Оптимизация кода -
eakwarp - 12.06.2010
Quote:
Originally Posted by MX_Master
Чтобы сделать список решений, нужно иметь список четких задач. Предыдущая задача по оптимизации циклов перебора игроков, это всего лишь одна из многих, которые сначала нужно обозначить и назвать.
|
Будем смотреть на вещи реально, существует всего одна задача, превратить некий код, в быстро работающий. И топаем от этой вводной
Re: Оптимизация кода -
Toney - 12.06.2010
JesterX, чем тебе ZCMD не угодил? Проводил тест, действительно, работает быстрее, чем стандартный паблик OnPlayerCommandText.
Кстати, раз уж вопрос о оптимизации, то думаю, немало слышали, что Куй сделал PVar's, сегодня переводил все переменные игрока на эти пивары, и тут при использовании функции возврата GetPVarString, он мне возвращает, какие-то аракули "ЯЯЯЯЯяяяяяяяЯЯЯЯ", действительно-ли, пивары не работают с русскими символами O_O?
Re: Оптимизация кода -
eakwarp - 12.06.2010
Quote:
Originally Posted by Toney
JesterX, чем тебе ZCMD не угодил? Проводил тест, действительно, работает быстрее, чем стандартный паблик OnPlayerCommandText.
Кстати, раз уж вопрос о оптимизации, то думаю, немало слышали, что Куй сделал PVar's, сегодня переводил все переменные игрока на эти пивары, и тут при использовании функции возврата GetPVarString, он мне возвращает, какие-то аракули "ЯЯЯЯЯяяяяяяяЯЯЯЯ", действительно-ли, пивары не работают с русскими символами O_O?
|
дедовский способ применяйте к этому - пробел в начале. Ну или fixchars
Re: Оптимизация кода -
JesterX - 12.06.2010
Toney, тем и не угодил, что dcmd работает быстрее чем zcmd.
Re: Оптимизация кода -
MX_Master - 12.06.2010
Quote:
Originally Posted by Eakwarp [Valakas.ru
]
Quote:
Originally Posted by MX_Master
Чтобы сделать список решений, нужно иметь список четких задач. Предыдущая задача по оптимизации циклов перебора игроков, это всего лишь одна из многих, которые сначала нужно обозначить и назвать.
|
Будем смотреть на вещи реально, существует всего одна задача, превратить некий код, в быстро работающий. И топаем от этой вводной ![Smiley](images/smilies/smile.png)
|
Пока тут был показан лишь 1 код, который нужно было оптимизировать. Оптимизировали. Других кодов не поступало. И че, это значит мона забыть про оптимизацию? (: Могу поспорить у каждого из вас в любом вашем скрипте/моде/фс такая свалка кода неоптимизированного лежит. А рассуждаемс о правилах оптимизации еще. Разве нет?
Re: Оптимизация кода -
Fro1sha - 12.06.2010
Quote:
Originally Posted by JesterX
Toney, тем и не угодил, что dcmd работает быстрее чем zcmd.
|
Эм.. те кто такое наврал, проведя небольшой тест, zcmd оказался в разы быстрее
Re: Оптимизация кода -
eakwarp - 12.06.2010
Quote:
Originally Posted by MX_Master
Quote:
Originally Posted by Eakwarp [Valakas.ru
]
Quote:
Originally Posted by MX_Master
Чтобы сделать список решений, нужно иметь список четких задач. Предыдущая задача по оптимизации циклов перебора игроков, это всего лишь одна из многих, которые сначала нужно обозначить и назвать.
|
Будем смотреть на вещи реально, существует всего одна задача, превратить некий код, в быстро работающий. И топаем от этой вводной ![Smiley](images/smilies/smile.png)
|
Пока тут был показан лишь 1 код, который нужно было оптимизировать. Оптимизировали. Других кодов не поступало. И че, это значит мона забыть про оптимизацию? (: Могу поспорить у каждого из вас в любом вашем скрипте/моде/фс такая свалка кода неоптимизированного лежит. А рассуждаемс о правилах оптимизации еще. Разве нет?
|
Как и у вас, я более чем уверен.
Re: Оптимизация кода -
Romanius - 12.06.2010
zcmd в разы быстрее чем dcmd и стандартный способ работы с командами
и кстати вот функция fixchars (у кого нету)
Code:
stock FixChars(string[]) for (new i=0;i<strlen(string);i++) if (string[i] < 0) string[i] += 256;
Re: Оптимизация кода -
MX_Master - 12.06.2010
Eakwarp
В том-то и дело, что у меня такого нет. Достаточно посмотреть мои релизы скриптов и библиотек. Бери любой другой релиз, скрипт из него и сравни по оптимизации. Возми и сравни свои скрипты с моими. И потом уже можешь что-то сказать про мои скрипты (: а не так как сейчас - голословно.
Re: Оптимизация кода -
Romanius - 12.06.2010
Вот написал функцию которая вытаскивает из PVar'ов русский буквы
Code:
stock GetPVarStringEx(playerid, varname[], string_return[], len) // Modifed by Romanius (bug with Russian letters)
{
if(GetPVarType(playerid, varname) == PLAYER_VARTYPE_STRING)
{
GetPVarString(playerid, varname, string_return, len);
for(new i = 0;i < strlen(string_return); i++) if(string_return[i] < 0) string_return[i] += 256;
return true;
}
return false;
}
и макрос для облегчения труда
Code:
#define GetPVarString GetPVarStringEx
Re: Оптимизация кода -
Fro1sha - 12.06.2010
pawn Code:
stock GetPVarStringEx(playerid, varname[], string_return[], len) // Modifed by Romanius (bug with Russian letters)
{
if(GetPVarType(playerid, varname) == PLAYER_VARTYPE_STRING)
{
GetPVarString(playerid, varname, string_return, len);
//for(new i = 0; i < strlen(string_return); i++) if(string_return[i] < 0) string_return[i] += 256; или
//for(new i = 0, len = strlen(string_return); i != len; i++) if(string_return[i] < 0) string_return[i] += 256; // ну и этот тоже норм :)
for(new i = 0; string_return[i] != '\0'; i++) if(string_return[i] < 0) string_return[i] += 256; // или этот самый ловкий, так как не вычисляет длину строки
return true;
}
return false;
}
Оптимизация
Re: Оптимизация кода -
Toney - 12.06.2010
Короче, сделал я вывод, к чёрту эти пивары, они компенсируются, придётся снова переделывать на массивы... Буду лишь использовать для мелких флагов, переменных, а хранить все переменные игрока (сохраняемые) буду только в массивах.
Re: Оптимизация кода -
eakwarp - 12.06.2010
Quote:
Originally Posted by MX_Master
Eakwarp
В том-то и дело, что у меня такого нет. Достаточно посмотреть мои релизы скриптов и библиотек. Бери любой другой релиз, скрипт из него и сравни по оптимизации. Возми и сравни свои скрипты с моими. И потом уже можешь что-то сказать про мои скрипты (: а не так как сейчас - голословно.
|
Не суть, суть в формировании правил написания кода, и по всей видимости исходя из ваших знаний.
Re: Оптимизация кода -
MX_Master - 13.06.2010
Лично я не понимаю, зачем надо было городить PVar'ы, это же не тот опиум для народа, которого ждут игроки и скриптеры. Типа, чтобы был виден прогресс в разработке (: По игре бы возможностей больше а не пиваров пачку. Пивары мона самому плагином добавить в крайнем случае.
Экономия памяти за счет этих пиваров не так уж и критична. Вот GVar уже что-то в плане оптимизации.
Re: Оптимизация кода -
Stepashka - 13.06.2010
Quote:
Originally Posted by MX_Master
Лично я не понимаю, зачем надо было городить PVar'ы, это же не тот опиум для народа, которого ждут игроки и скриптеры. Типа, чтобы был виден прогресс в разработке (: По игре бы возможностей больше а не пиваров пачку. Пивары мона самому плагином добавить в крайнем случае.
Экономия памяти за счет этих пиваров не так уж и критична. Вот GVar уже что-то в плане оптимизации.
|
в корне не согласен, если ты не нашел для них применение это ещё не значит что они бесполезны. Я вот нашел им применение и не брезгую их использовать. У них есть одно неоспоримое преймущество, когд аигрок уходит с сервера они автоматически удаляются.
Re: Оптимизация кода -
ZiGGi - 13.06.2010
Quote:
Originally Posted by stepmex
в корне не согласен, если ты не нашел для них применение это ещё не значит что они бесполезны. Я вот нашел им применение и не брезгую их использовать. У них есть одно неоспоримое преймущество, когд аигрок уходит с сервера они автоматически удаляются.
|
пвары работают медленнее массивов.
Re: Оптимизация кода -
MX_Master - 13.06.2010
Quote:
Originally Posted by stepmex
Quote:
Originally Posted by MX_Master
Лично я не понимаю, зачем надо было городить PVar'ы, это же не тот опиум для народа, которого ждут игроки и скриптеры. Типа, чтобы был виден прогресс в разработке (: По игре бы возможностей больше а не пиваров пачку. Пивары мона самому плагином добавить в крайнем случае.
Экономия памяти за счет этих пиваров не так уж и критична. Вот GVar уже что-то в плане оптимизации.
|
в корне не согласен, если ты не нашел для них применение это ещё не значит что они бесполезны. Я вот нашел им применение и не брезгую их использовать. У них есть одно неоспоримое преймущество, когд аигрок уходит с сервера они автоматически удаляются.
|
Вот тебе написали, что удаляется и ты это повторяешь. Ну и что от этого стало лучше/быстрее? Хе, понравилось про "не брезгаю их использовать" (:
И ты думаешь какие-то функции для динамического хранения переменных нам нужны больше, чем дополнильные игровые возможности? Был бы я С прогером, портировал бы много плагинов в сэмп, просто чтобы люди не мучались со стандартными средствами. Но мультиплеер это не только чистый С++, это еще и игра, управлять которой мы и хотим в большей степени, чем иметь какие-то приблуды по работе с данными.
Re: Оптимизация кода -
Fro1sha - 13.06.2010
Quote:
Originally Posted by ZiGGi
Quote:
Originally Posted by stepmex
в корне не согласен, если ты не нашел для них применение это ещё не значит что они бесполезны. Я вот нашел им применение и не брезгую их использовать. У них есть одно неоспоримое преймущество, когд аигрок уходит с сервера они автоматически удаляются.
|
пвары работают медленнее массивов.
|
За то можно использовать как глобальные переменные, связать с FS их