Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±

    Проверка производительности кода

    PHP код:
            static const
                
    str1[] = !"Добро пожаловать\nПерсонаж с именем ",
                
    str2[] = !" не зарегистрирован.\nДля регистрации необходимо ввести пароль.\nВнимание! Не рекомендуется использовать простые пароли.";
                
            new 
    str[sizeof str1 MAX_PLAYER_NAME sizeof str2];

            
    strcat(strstr1);
            
    strcat(strpInfo[playerid][pName]);
            
    strcat(strstr2);

            
    ShowPlayerDialog(playeridd_registerDIALOG_STYLE_INPUT"Регистрация"str"Ввод"""); 
    PHP код:
    format(strsizeof str, !"Добро пожаловать\nПерсонаж с именем %s не зарегистрирован.\nДля регистрации необходимо ввести пароль.\nВнимание! Не рекомендуется использовать простые пароли."pInfo[playerid][pName]);
    ShowPlayerDialog(playeridd_registerDIALOG_STYLE_INPUT"Регистрация"str"Ввод"""); 
    Привет всем. Пацаны, как проверить производительность кода по скорости? Что быстрее: формат или скрепление с помощью strcat?

    Топ, где DC рассказывает о производительности кода format vs strcat не закидывать, ибо его метод мне глубоко не понятен, не получается.

  2. #2
    Аватар для MacMailler
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.02.2014
    Сообщений
    38
    Репутация:
    15 ±
    PHP код:
        new GetTickCount();
        for(new 
    i10_000_000i++) {
            
    str "";
            
    strcat(strstr1); 
            
    strcat(strpInfo[playerid][pName]);
            
    strcat(strstr2); 
        }
        
    printf("strcat: %i (ms)"GetTickCount() - t);
        
    GetTickCount();
        
        for(new 
    i10_000_000i++) {
            
    str "";
            
    format(strsizeof str"%s%s%s"str1pInfo[playerid][pName], str2);
        }
        
    printf("format: %i (ms)"GetTickCount() - t); 
    Последний раз редактировалось MacMailler; 16.04.2016 в 08:26.

  3. Пользователь сказал cпасибо:
    BadPawn (16.04.2016)
  4. #3
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    10_000_000 
    А зачем нижние подчёркивания?
    Типо что бы лучше читалось или так положено задавать в итерациях?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  5. #4
    Аватар для MacMailler
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.02.2014
    Сообщений
    38
    Репутация:
    15 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    10_000_000 
    А зачем нижние подчёркивания?
    Типо что бы лучше читалось или так положено задавать в итерациях?
    Для лучшей читаемости.

  6. Пользователь сказал cпасибо:
    vovandolg (16.04.2016)
  7. #5
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    strcat: 6963 (ms)
    format: 5573 (ms)

  8. #6
    Аватар для MacMailler
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.02.2014
    Сообщений
    38
    Репутация:
    15 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    strcat: 6963 (ms)
    format: 5573 (ms)
    Чем меньше число, тем лучше.

  9. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Заведи себе отдельный pwn с вот этим кодом, разберись с тем, как он работает и используй его всякий раз, когда нужно сравнить какой-то код. Останется лишь правильно составить логику сравниваемого кода, дабы ты сравнивал именно код с одинаковым предназначением, но реализованный по разному, а не 2 совершенно разных кода и всё. У меня у самого имеется такой файл и в server.cfg имеется такая "перемычка":
    PHP код:
    gamemode0 основной_мод 1
    //gamemode0 prof 1 
    И когда нужно включить именно профилирование, я просто выделяю "//" и переношу на строку выше.
    P.S. Там и пример с strcat/format как раз есть.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    BadPawn (16.04.2016)
  11. #8
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    PHP код:
    strcat5669
    format
    4835 
    Вот. )

  12. #9
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    А если вот так?

    PHP код:
    static const str1[] = "Добро пожаловать\nПерсонаж с именем ";
    #pragma unused str1
    static const str2[] = " не зарегистрирован.\nДля регистрации необходимо ввести пароль.\n\
                            Внимание! Не рекомендуется использовать простые пароли."
    ;
    new 
    str[(sizeof str1 1) + MAX_PLAYER_NAME + (sizeof str2 1) + 1] = "Добро пожаловать\nПерсонаж с именем ";
    strcat(strpInfo[playerid][pName]);
    strcat(strstr2);
    ShowPlayerDialog(playeridd_registerDIALOG_STYLE_INPUT"Регистрация"str"Ввод"""); 

  13. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Опять же, тема от D_C. В первом примере все замеры уже давно сделаны
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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