Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Сообщений
    37
    Репутация:
    14 ±
    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,360
    Репутация:
    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
    Сообщений
    37
    Репутация:
    14 ±
    Цитата Сообщение от 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
    Сообщений
    37
    Репутация:
    14 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    strcat: 6963 (ms)
    format: 5573 (ms)
    Чем меньше число, тем лучше.

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

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

    Широко известно, что идеи стоят 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
    Аватар для untonyst
    Младший сержант

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

    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"Ввод"""); 
    Младший сержант Стяжкин | ЧСВ группа в ВКонтакте NEW

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Опять же, тема от D_C. В первом примере все замеры уже давно сделаны
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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