Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 15 из 15

Тема: PVar's

  1. #11
    Аватар для Ashmy
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2017
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Потому что эти 58*800 байт выделяются в любом случае: используешь ты pVar или нет.
    Ты ещё начни использовать глобальный string вместо локального, ведь зачем выделять память в стэке (хотя она там выделена ещё при старте сервера и все твои "new" просто резервируют определённые участки памяти под свои нужды, а не выделяют новую память), когда можно создать глобальную переменную и делать всё то же самое, что и делает стэк, только в ручном режиме!
    Не подумал про то что память выделяется под PVar'ы сразу. Это всё объясняет). Получается, что DeletePVar стоит использовать разве что для обнуления значения PV'ar'а и всё? Больше никакой пользы, раз память не освобождается

  2. #12
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Ashmy Посмотреть сообщение
    Не подумал про то что память выделяется под PVar'ы сразу. Это всё объясняет). Получается, что DeletePVar стоит использовать разве что для обнуления значения PV'ar'а и всё? Больше никакой пользы, раз память не освобождается
    Нет, не получается :)
    Удаление нужно не для того, чтоб освобождать память (хотя для чего ты вообще собрался её освобождать, если количество занимаемой модом памяти известно уже на этапе компиляции и никак не изменится при работе сервера?), а для того, чтоб освободить память (слот) для нового pVar. Ведь, как ранее говорилось, у pVar есть свои лимиты и если эти pVar вовремя не удалять, можно легко лимиты превысить.
    Да и чем больше создано pVar, тем дольше будет обращение к pVar с последним ID, что хоть и не существенно, но должно тебя волновать, если ты хочешь написать хороший мод, который использует ресурсы по назначению, а не разбрасывается ими.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    23.08.2017
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Нет, не получается :)
    Удаление нужно не для того, чтоб освобождать память (хотя для чего ты вообще собрался её освобождать, если количество занимаемой модом памяти известно уже на этапе компиляции и никак не изменится при работе сервера?), а для того, чтоб освободить память (слот) для нового pVar. Ведь, как ранее говорилось, у pVar есть свои лимиты и если эти pVar вовремя не удалять, можно легко лимиты превысить.
    Да и чем больше создано pVar, тем дольше будет обращение к pVar с последним ID, что хоть и не существенно, но должно тебя волновать, если ты хочешь написать хороший мод, который использует ресурсы по назначению, а не разбрасывается ими.
    Всё понял. Благодарю. Сразу же вопрос хочу здесь задать по поводу динамических арен/сфер стримера, они сильно превосходят по скорости классический вариант с перебором координат по типу цикл + IsPlayerInRangeOfPoint? Если сделать 1 проверку в OnPlayerEnterDynamicArea, стример будет ~20 раз (по-моему каждые 50 мс по дефолту) проверять вошёл ли игрок в зону, верно? С другой стороны, если сделать цикл с перебором координат на какую-нибудь кнопку с откатом в 1-2 секунды...? Я слышал что-то типа: "если ставишь себе стример - используй его по максимуму", - насколько верны эти слова?

  5. #14
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Ashmy Посмотреть сообщение
    Всё понял. Благодарю. Сразу же вопрос хочу здесь задать по поводу динамических арен/сфер стримера, они сильно превосходят по скорости классический вариант с перебором координат по типу цикл + IsPlayerInRangeOfPoint? Если сделать 1 проверку в OnPlayerEnterDynamicArea, стример будет ~20 раз (по-моему каждые 50 мс по дефолту) проверять вошёл ли игрок в зону, верно? С другой стороны, если сделать цикл с перебором координат на какую-нибудь кнопку с откатом в 1-2 секунды...? Я слышал что-то типа: "если ставишь себе стример - используй его по максимуму", - насколько верны эти слова?
    Всё зависит от ситуации. Преимущество стримера в том, что он все сверки координат делает на своей стороне, в отдельном потоке. Но из этого вытекает минус в виде "неточности" из-за того, что когда стример находит игрока внутри динамической зоны, он отсылает информацию об этом серверу и сервер не сразу обрабатывает её, а ставит в общую очередь. Соответственно, если пакет пришёл в момент начала выполнения какого-нибудь трудоёмкого коллбэка, OnPlayerEnterDynamicArea не сработает, пока этот коллбэк не обработается.
    То бишь, нагрузки на поток, в котором обрабатывается мод, будет меньше, но и точность упадёт
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  6. #15
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Имейте в виду, что темы с вопросами здесь архивируются, чтобы не отвечать заново на одни и те же вопросы для каждого такого же пользователя, как вы. Например, если кто-то ещё задаст вопрос про экономию памяти за счёт PVa'ов, ему дадут ссылку на эту тему. Или этот кто-то сам найдёт ответ, отыскав тему по названию (через поиск по форуму).

    Если же у вас возник новый вопрос, никак не относящийся к предыдущему, создайте новую тему - иначе ответ на новый вопрос по названию темы найти не получится. Не захламляйте форум бессвязными вопросами в одной теме.

    Закрыто.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

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

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

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

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

Ваши права

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