Страница 16 из 16 ПерваяПервая ... 6141516
Показано с 151 по 158 из 158

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

  1. #151
    ?????? Аватар для Иваныч
    Регистрация
    10.02.2011
    Адрес
    Vlz
    Возраст
    28
    Сообщений
    4,152
    Репутация: 403

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

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

    Цитата Сообщение от JDean Посмотреть сообщение
    Просто в теме много того что стоило бы обновить так как есть новые методы и новые дополнения, файлы подгрузки.
    ну так напиши, а модератор добавит в шапку.

  2. #152
    Пользователь Аватар для xDimazzz
    Регистрация
    22.09.2012
    Сообщений
    45
    Репутация: -1

    Звание: имеет немного плохого в прошлом

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

    Новое решение для ускорение циклов. В ~7 раз быстрее векторов, с остальным не проверял.

    Ссылка на инклюд: http://forum.sa-mp.com/showthread.php?p=2620155
    Ссылка на плагин: http://forum.sa-mp.com/showthread.php?t=451381

    Результат теста на 1000000 итераций на 500 игроков:
    Vectors: 70683 ms
    Lists: 11472 ms
    Тест 10000 итераций на 500 игроков:
    Vectors: 712 ms
    Lists: 123 ms
    GetMaxPlayers: 68 ms
    Тест 10000 итераций на 50 игроков:
    Vectors: 72 ms
    Lists: 12 ms
    GetMaxPlayers: 68 ms
    Пример:
    PHP код:
    new LIST::init<PLAYERS>; // Создаем список

    public OnPlayerConnect(playerid)
    {
        
    SetPVarInt(playerid"nodeid_list"_:LIST::push_back(PLAYERSplayerid)); // Добавляем в список и сохраняем номер в списке
        
    return 1;
    }

    public 
    OnPlayerDisconnect(playerid)
    {
        LIST::
    erase(PLAYERSListIt:GetPVarInt(playerid"nodeid_list")); // Удаляем из списка
        
    return 1;
    }

    // например, таймер...
    forward OtherTimer();
    public 
    OtherTimer()
    {
        LIST::foreach<
    i>(PLAYERS)
        {
            new 
    playerid LIST_IT::data(i); // получаем из ячейки i значение
            
    SendClientMessage(playerid, -1"Привет :)");
        }
    }

    public 
    OnGameModeExit()
    {
        LIST::
    clear(PLAYERS); // Очищаем список
        
    return 1;

    Или:
    PHP код:
    #define foreach%2(%0:%1)    for(new Pointer:__%0_x_ = Pointer:%1[LIST_base_begin], Pointer:_b_%0_ = MEM_EX::get_ptr(Pointer:%1[LIST_base_begin]->LIST_IT_data_data_offset), %0; _:__%0_x_ != NULL; _b_%0_ = (__%0_x_ = Pointer:MEM_EX::get_val(__%0_x_->LIST_IT_data_next))+Pointer:(LIST_IT_data_data_offset*MEM_MACR_SIZEOF_CELL)) if((%0 = LIST_IT_data(_b_%0_)))

    new LIST::init<PLAYERS>;  // Создаем список

    public OnPlayerConnect(playerid)
    {
        
    SetPVarInt(playerid"nodeid_list"_:LIST::push_back(PLAYERSplayerid)); // Добавляем в список и сохраняем номер в списке
        
    return 1;
    }

    public 
    OnPlayerDisconnect(playerid)
    {
        LIST::
    erase(PLAYERSListIt:GetPVarInt(playerid"nodeid_list")); // Удаляем из списка
        
    return 1;
    }

    // например, таймер...
    forward OtherTimer();
    public 
    OtherTimer()
    {
        foreach(
    playerid:PLAYERS)
        {
            
    SendClientMessage(playerid, -1"Привет :)");
        }
    }

    public 
    OnGameModeExit()
    {
        LIST::
    clear(PLAYERS); // Очищаем список
        
    return 1;


  3. #153
    Пользователь
    Регистрация
    27.08.2012
    Возраст
    29
    Сообщений
    72
    Репутация: 3

    Звание: пока не определено

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

    Кто-то говорил, что оптимизировать получение игркоа можно ткаим спомобом:
    Видно что сам писал..
    Спасибо грамотная тема. Очень помогла. Перед изучением языка павно надо ее читать всем. И регулярно заглядывать , когда создаешь функцию.

  4. #154
    кот Аватар для Ленивый
    Регистрация
    12.10.2011
    Адрес
    Балаково
    Возраст
    33
    Сообщений
    888
    Репутация: 102

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

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

    Цитата Сообщение от xDimazzz Посмотреть сообщение
    Новое решение для ускорение циклов. В ~7 раз быстрее векторов, с остальным не проверял.

    Ссылка на инклюд: http://forum.sa-mp.com/showthread.php?p=2620155
    Ссылка на плагин: http://forum.sa-mp.com/showthread.php?t=451381

    Результат теста на 1000000 итераций на 500 игроков:


    Тест 10000 итераций на 500 игроков:


    Тест 10000 итераций на 50 игроков:


    Пример:
    PHP код:
    new LIST::init<PLAYERS>; // Создаем список

    public OnPlayerConnect(playerid)
    {
        
    SetPVarInt(playerid"nodeid_list"_:LIST::push_back(PLAYERSplayerid)); // Добавляем в список и сохраняем номер в списке
        
    return 1;
    }

    public 
    OnPlayerDisconnect(playerid)
    {
        LIST::
    erase(PLAYERSListIt:GetPVarInt(playerid"nodeid_list")); // Удаляем из списка
        
    return 1;
    }

    // например, таймер...
    forward OtherTimer();
    public 
    OtherTimer()
    {
        LIST::foreach<
    i>(PLAYERS)
        {
            new 
    playerid LIST_IT::data(i); // получаем из ячейки i значение
            
    SendClientMessage(playerid, -1"Привет :)");
        }
    }

    public 
    OnGameModeExit()
    {
        LIST::
    clear(PLAYERS); // Очищаем список
        
    return 1;

    Или:
    PHP код:
    #define foreach%2(%0:%1)    for(new Pointer:__%0_x_ = Pointer:%1[LIST_base_begin], Pointer:_b_%0_ = MEM_EX::get_ptr(Pointer:%1[LIST_base_begin]->LIST_IT_data_data_offset), %0; _:__%0_x_ != NULL; _b_%0_ = (__%0_x_ = Pointer:MEM_EX::get_val(__%0_x_->LIST_IT_data_next))+Pointer:(LIST_IT_data_data_offset*MEM_MACR_SIZEOF_CELL)) if((%0 = LIST_IT_data(_b_%0_)))

    new LIST::init<PLAYERS>;  // Создаем список

    public OnPlayerConnect(playerid)
    {
        
    SetPVarInt(playerid"nodeid_list"_:LIST::push_back(PLAYERSplayerid)); // Добавляем в список и сохраняем номер в списке
        
    return 1;
    }

    public 
    OnPlayerDisconnect(playerid)
    {
        LIST::
    erase(PLAYERSListIt:GetPVarInt(playerid"nodeid_list")); // Удаляем из списка
        
    return 1;
    }

    // например, таймер...
    forward OtherTimer();
    public 
    OtherTimer()
    {
        foreach(
    playerid:PLAYERS)
        {
            
    SendClientMessage(playerid, -1"Привет :)");
        }
    }

    public 
    OnGameModeExit()
    {
        LIST::
    clear(PLAYERS); // Очищаем список
        
    return 1;

    плагина там не нашел, ток инклуд.

    > Про меня <


  5. #155
    Пользователь Аватар для xDimazzz
    Регистрация
    22.09.2012
    Сообщений
    45
    Репутация: -1

    Звание: имеет немного плохого в прошлом

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

    Alpano, слепой?
    Ссылка на инклюд: http://forum.sa-mp.com/showthread.php?p=2620155
    Ссылка на плагин: http://forum.sa-mp.com/showthread.php?t=451381

  6. #156
    Пользователь Аватар для Arhan4hel
    Регистрация
    12.02.2012
    Адрес
    Ukraine|Сity:Ternopil
    Возраст
    26
    Сообщений
    46
    Репутация: -2

    Звание: имеет немного плохого в прошлом

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

    Скинь мод с этим перебором игроков. Где оно работает.

  7. #157
    Пользователь Аватар для Arhan4hel
    Регистрация
    12.02.2012
    Адрес
    Ukraine|Сity:Ternopil
    Возраст
    26
    Сообщений
    46
    Репутация: -2

    Звание: имеет немного плохого в прошлом

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

    Тесты:
    [23:25:21] Lists test
    [23:25:21] 200 players connected
    [23:25:21] 50-100 IDs Disconnected
    [23:25:21] Starting main cycle 1000000 times
    [23:25:26] New test DONE. Time: 4895 ms.

    [23:03:53] Y_Less's foreach test
    [23:03:53] 200 players connected
    [23:03:53] 50-100 IDs Disconnected
    [23:03:53] Starting main cycle 1000000 times
    [23:03:56] Y_Less's foreach test DONE. Time: 2274 ms.

    [23:02:17] Tracker1's foreach test
    [23:02:17] 200 players connected
    [23:02:17] 50-100 IDs Disconnected
    [23:02:17] Starting main cycle 1000000 times
    [23:02:22] Tracker1's foreach test DONE. Time: 5019 ms.

  8. #158
    Проверенный Аватар для OKStyle
    Регистрация
    26.04.2010
    Адрес
    Россия, Оренбург
    Возраст
    35
    Сообщений
    6,398
    Репутация: 532

    Звание: - луч света в тёмном царстве

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

    Цитата Сообщение от xDimazzz Посмотреть сообщение
    Тест 10000 итераций на 500 игроков:
    При 1000p стандартные методы выигрывают.

    Код:
    Applications
    Pawno Rus No 217 [28.06.2008] SA-MP 0.3e Rcon Edition Rus [16.09.2010] Win-server Autostarter [31.01.2011]
    
    Gamemodes
    Public Enemy LS/SF/LV [25.07.2010] TDM Style []
    
    Filterscripts
    Sex            [05.07.2008] Showgirls                 [24.05.2010] Equip                     [02.02.2011] Jellyfisher               [11.02.2012] Tank Lights System [14.03.2013]
    All Animations [13.07.2008] Colored Healthbar         [08.06.2010] Exclusive Clothes         [07.03.2011] Parking                   [12.02.2012] TextDraw Captcha   [22.03.2013]
                                Pay'n'Spray Colors Menu   [23.06.2010] 0.2.2 Class Selection     [07.03.2011] Serial ID Ban             [31.03.2012]
                                Wedding                   [28.06.2010] Other Chatname            [09.03.2011] Advanced Weapons          [02.04.2012]
                                Rusty Brown's Ring Donuts [29.06.2010] Top View                  [09.03.2011] Ingame Map Editor         [01.05.2012]
                                                                       Rainbow Tab               [10.03.2011] Colored Checkpoints       [10.05.2012]
                                                                       Textdraw Intro            [03.09.2011] Experience & Level System [22.07.2012]
                                                                       Kickstart Challange       [06.09.2011] Target Message System     [17.11.2012]
                                                                       Love Fist Concert         [09.10.2011]
                                                                       3D Info                   [12.10.2011]
                                                                       Vehicle Bonus Return      [13.10.2011]
                                                                       Rockstar Logos Collection [16.10.2011]
                                                                       Textures Ingame Editor    [16.10.2011]
                                                                       Map-Radar                 [17.10.2011]
    
    Maps
    Military Vehicle Interior  [06.04.2012]
    Barracks Soldiers Interior [07.04.2012]
    Barracks Officers Interior [08.04.2012]
    
    Include
    FD ASM - форматированный диалог на #emit [31.03.2013]
    






Страница 16 из 16 ПерваяПервая ... 6141516

Похожие темы

  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

Ваши права

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