Страница 3 из 16 ПерваяПервая 1234513 ... ПоследняяПоследняя
Показано с 21 по 30 из 158

Тема: Единая тема оптимизации

  1. #21
    ~`!@#$%^&*() Аватар для Ross
    Регистрация
    20.08.2010
    Адрес
    Сочи
    Сообщений
    1,356
    Репутация: 124

    Звание: скоро придёт к известности

    Re: Единая тема оптимизации

    Тебя не за****о равняться на Y_Less?

  2. #22
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    Re: Единая тема оптимизации

    Цитата Сообщение от Ross Посмотреть сообщение
    Тебя не за****о равняться на Y_Less?
    Я не равняюсь.
    Просто сказал, что большинство взято с этого топика, даже: Переключатели, ПОчему нельзя использовать стринги в 256 ячеек



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  3. #23
    Проверенный
    Регистрация
    21.09.2011
    Сообщений
    1,015
    Репутация: 178

    Звание: - весьма и весьма положительная личность

    Re: Единая тема оптимизации

    Цитата Сообщение от Dope D.O.D Посмотреть сообщение
    Я не равняюсь.
    Просто сказал, что большинство взято с этого топика, даже: Переключатели, ПОчему нельзя использовать стринги в 256 ячеек
    Может стоит самому проводить замеры скорости? Любой пользователь может написать ерунду, которую воспримут по разному, в зависимости от его авторитета.

  4. #24
    Проверенный Аватар для Johurt
    Регистрация
    21.09.2010
    Адрес
    Lithuania, Klaipėda
    Возраст
    29
    Сообщений
    1,168
    Репутация: 38

    Звание: на пути к лучшему

    Re: Единая тема оптимизации

    Я тут чуть-чуть не понял, можешь мне пояснить почему
    PHP код:
    #undef MAX_PLAYERS // Раздефайним макрос MAX_PLAYERS
    const MAX_PLAYERS 100//Объявим константу, равную 100 
    а не
    PHP код:
    #undef MAX_PLAYERS // Раздефайним макрос MAX_PLAYERS
    #define MAX_PLAYERS 100 


    В большинстве случаев оператор switch выигрывает в скорости.
    Switch работает быстрее в тех случаях, когда нужно перебрать большое кол-во значений.
    Большое количество это сколько?

  5. #25
    Активный пользователь
    Регистрация
    07.07.2012
    Сообщений
    214
    Репутация: 24

    Звание: на пути к лучшему

    Re: Единая тема оптимизации

    Практически половина решений не даст никакой оптимизации ...

    PHP код:
    new Float:health;
    for (new 
    0GetMaxPlayers(); i++)
    {
            if(!
    IsPlayerConnected(i)) continue; //Если игрок не подключен, то цикл пропустит итерацию
        
    if (GetPlayerHealth(ihealth)) SetPlayerHealth(ihealth 10.0);

    Будет работать дольше, чем с MAX_PLAYERS т.к придется вызывать функцию GetMaxPlayers много раз.
    Вот оптимизированный код:

    PHP код:
    new Float:health;
    for (new 
    iGetMaxPlayers(); != p++)
    {
        if(!
    IsPlayerConnected(i)) continue;
        
    GetPlayerHealth(ihealth);
        
    SetPlayerHealth(ihealth 10.0);

    А вообще здесь лучше создать переменную, а при старте сервера читать строку maxplayers из server.cfg.

    PHP код:
    if (GetPlayerVehicleID(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), 0.00.010.0); 
    Зачем 2 раза вызывать функцию GetPlayerVehicleID ?

    PHP код:
    new vehicleid GetPlayerVehicleID(playerid);
    if(
    vehicleidSetVehiclePos(vehicleid0.00.010.0); 
    Часто сталкивался с таким кодом как:
    PHP код:
    new Player[MAX_PLAYERS];

    public 
    OnPlayerConnect(playerid)
    {
        
    Player[MAX_PLAYERS] += 1;

    Такой код даже не прокомпилируется без ошибок, да и пример вообще неудачный.

  6. #26
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    Re: Единая тема оптимизации

    Зачем 2 раза вызывать функцию GetPlayerVehicleID ?
    Я скажем так, сомневался, что присваивание значении переменной быстрее, чем вызов напрямую. Теперь всё ок, подкорректировал.

    Player[MAX_PLAYERS] += 1;
    Простите, писал в браузере, а там легче Copy + Paste чем по 100 раз писать одно и тоже.

    вызывать функцию GetMaxPlayers много раз.
    Нужно непременно сообщить ОКСу

    for (new i, p = GetMaxPlayers(); i != p; i ++)
    Переменная "p" не объявлена.

    Ну циклы исправлю позже.

    Спасибо большое, если будут ещё ошибки - сообщайте.



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  7. #27
    ex-Pawn developer Аватар для SHOROOP
    Регистрация
    28.05.2011
    Адрес
    St.Petersburg
    Возраст
    31
    Сообщений
    2,667
    Репутация: 306

    Звание: как роза среди колючек

    Re: Единая тема оптимизации

    Цитата Сообщение от Johurt Посмотреть сообщение
    Большое количество это сколько?
    Насчет количества не скажу, но почему будет быстрее - обосную.
    Если строить все на else if'ах, то один и тот же параметр будет проверяться на каждом условии. Если на switch - блок ветвления будет иметь не две ветки "да-нет", а большее их количество с уже конкретными значениями.

  8. #28
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    Re: Единая тема оптимизации

    Следующая конструкция:
    PHP код:
    switch(var)
    {
            case 
    40,80,150,160,230,420: return 1;

    быстрее, чем

    PHP код:
    if ( var == 40 || var == 80 || var == 150 || var == 160 || var == 230 || var == 420 ) return 1
    Следующая конструкция:

    PHP код:
    switch(var)
    {
            case 
    40..80,150..160,230..420: return 1;

    медленнее чем

    PHP код:
    if ( var >= 40 && var <= 80 || var >= 150 && var <= 160 || var >= 230 && var <= 420 ) return 1
    Следующая конструкция:

    PHP код:
    switch(var)
    {
            case 
    40: return 1;

    одинакова как и

    PHP код:
    if ( var == 40 ) return 1
    Следующая конструкция:

    PHP код:
    switch(var)
    {
            case 
    40..50: return 1;

    быстрее чем

    PHP код:
    if ( var >= 40 && var <= 50 ) return 1
    Вот как-то так



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  9. #29
    Проверенный Аватар для Johurt
    Регистрация
    21.09.2010
    Адрес
    Lithuania, Klaipėda
    Возраст
    29
    Сообщений
    1,168
    Репутация: 38

    Звание: на пути к лучшему

    Re: Единая тема оптимизации

    Цитата Сообщение от SHOROOP Посмотреть сообщение
    Насчет количества не скажу, но почему будет быстрее - обосную.
    Если строить все на else if'ах, то один и тот же параметр будет проверяться на каждом условии. Если на switch - блок ветвления будет иметь не две ветки "да-нет", а большее их количество с уже конкретными значениями.
    Я знаю, хотел что бы ответ автор темы ;/

  10. #30
    Проверенный Аватар для frog163
    Регистрация
    12.04.2010
    Адрес
    Samara
    Возраст
    31
    Сообщений
    4,548
    Репутация: 365

    Звание: - очень-очень хороший человек

    Re: Единая тема оптимизации

    Нужно непременно сообщить ОКСу
    Вот он то как раз знает об этом, у него эта функция вызывается 1 раз.
    Переменная "p" не объявлена.
    :facespa:
    Ничто не ограничивает полет мысли программиста так, как компилятор, сцуко!
    Если в предложении собеседника различного рода смайлов больше чем слов - однозначно, что этот индивид страдает критической, неизлечимой и при этом прогрессирующей формой долбоебизма © лурка
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

Страница 3 из 16 ПерваяПервая 1234513 ... ПоследняяПоследняя

Похожие темы

  1. Вопрос по оптимизации
    от Clarita1996 в разделе Вопросы по скриптингу
    Ответов: 10
    Последнее сообщение: 03.11.2012, 21:33
  2. Ответов: 16
    Последнее сообщение: 09.12.2011, 17:42
  3. Вопрос по оптимизации
    от happines в разделе Вопросы по скриптингу
    Ответов: 0
    Последнее сообщение: 01.07.2011, 11:00
  4. Помогите в оптимизации
    от ruslan в разделе Вопросы по скриптингу
    Ответов: 1
    Последнее сообщение: 30.03.2011, 20:28

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •