Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 14 из 14
  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Kazoox Посмотреть сообщение
    Не надо слов, я лишь покажу результаты тестов твоего же кода.
    Без JIT:

    С JIT:


    И вправду, даже не вооружённым глазом видно разницу примерно в 20 мс *дикий сарказм*.
    А теперь покажи код, который у тебя получился, ибо даже невооружённым взглядом видно, что код сам по себе кривой, судя по результатам Jit.

    Вот только что зашёл и проверил:
    Без Jit:

    (В среднем разница в 200 секунд. Немного простой математики и можно выяснить, что на одну итерацию при поиске пикапа с ID 1000001 уйдёт 0,0002 секунды. Для ID 150 сам сможешь рассчитать время?)

    С Jit:

    Значение прыгает от 25 до 35 секунд, о которых я тебе и говорил. И это с учётом миллиона пикапов
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Сообщений
    121
    Репутация:
    3 ±
    Вот вам, мисье, скрин, вашего же кода, чисто Ctrl+C Ctrl+V.

    Так собственно кто или что у нас тут кривое?). Как не крути но стример тебе быстрее "найдёт" пикап чем IsPlayerInRangeOfPoint.
    Последний раз редактировалось Kazoox; 31.03.2016 в 13:58.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Kazoox Посмотреть сообщение
    Вот вам, мисье, скрин, вашего же кода, чисто Ctrl+C Ctrl+V.

    Так собственно кто или что у нас тут кривое?).
    Твой мод? Ну никак объективно код в Jit-плагином не может иметь такие различи.
     Вот пустой мод
    PHP код:
    #include <a_samp>
    #include <streamer>

    main()
    {
        print(
    "\n----------------------------------");
        print(
    " Blank Gamemode by your name here");
        print(
    "----------------------------------\n");
    }


    new 
    pickup_array[1_000_000],
        
    pickup_1;
    public 
    OnGameModeInit()
    {

        for(new 
    iFloat:z=13.38281_000_000i++) pickup_array[i] = CreateDynamicPickup(1274231893.1178,-2051.5422,z+=1.0, -1);
        
    pickup_1 CreateDynamicPickup(1274231884.2887,-2042.4277,13.3906, -1);
        
    CreateDynamicPickup(1274231872.2954,-2049.6240,13.3828, -1);

        return 
    1;
    }
    public 
    OnPlayerPickUpDynamicPickup(playeridpickupid)
    {
        new 
    string[100],
            
    time GetTickCount();
        for(new 
    i1_000_000i++)
        {
            if(
    pickup_array[i] == pickupid) return SendClientMessage(playerid, -1"pickup_array");
        }
        if(
    pickupid == pickup_1
        {
            
    printf("Pick: На поиск затрачено %d секунд"GetTickCount()-time);
            
    format(stringsizeof(string), "Pick: На поиск затрачено %d секунд"GetTickCount()-time);
            
    SendClientMessage(playerid, -1string);
            return 
    1;    
        }    
        return 
    1;    
    }

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        if(
    newkeys KEY_WALK)
        {
            new 
    string[100],
                
    time GetTickCount();
            for(new 
    i1_000_000i++)
            {
                if(
    IsPlayerInRangeOfPoint(playerid1.01881.7056,-2055.4966,13.3828)) return SendClientMessage(playerid, -1"IsPlayerInRangeOfPoint");    
            }
            if(
    IsPlayerInRangeOfPoint(playerid1.01872.2954,-2049.6240,13.3828))  
            {
                
    printf("Key: На поиск затрачено %d секунд"GetTickCount()-time);
                
    format(stringsizeof(string), "Key: На поиск затрачено %d секунд"GetTickCount()-time);
                
    SendClientMessage(playerid, -1string);
            }
            return 
    1;
        }
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        
    SetPlayerPos(playerid1958.37831343.157215.3746);
        
    SetPlayerCameraPos(playerid1958.37831343.157215.3746);
        
    SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
        return 
    1;


    И вот его результаты:
    https://www.dropbox.com/s/5zip1it9hu...6-284.avi?dl=0

    Те же результаты и мой мод выдаёт. Можно было бы винить железо, но в таком случае разница с Jit Была бы гораздо адекватнее, нежели 100 и 500 (вполне возможно, что дооптимизировался, но не суть)



    Цитата Сообщение от Kazoox Посмотреть сообщение
    Как не крути но стример тебе быстрее "найдёт" пикап чем IsPlayerInRangeOfPoint.
    Так а я отрицал это? Я лишь пытался тебе указать на то, что может не стоит овчинка выделки? Ради пары сотых наносекунды ты и игрокам жизнь подпортишь, и себя работой нагрузишь. Хочешь - пожалуйста. Я тебе уже все данные для раздумий выдал, а дальше уже решай сам
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Сообщений
    121
    Репутация:
    3 ±
    Ничья
    Железо отличное и быть проблем с ним не могло быть.
    Да и оптимизация тут тоже не при чем, абсолютно.
    То есть ни мой код, ни моё железо не виноваты в результатах теста.
    Результаты тестов "испоганил" плагин profiler, который был благополучно подключен у меня уже не первый месяц, собственно я за него уже и забыл. Тему можно закрывать. Вопрос решён.

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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