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

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±

    Упаковать данные о расположении объектов

    Возник вопрос, можно ли упаковать данные объекта и будет ли это как-то благоприятно влиять на мод? Есть ли выгода делать это что бы получить свободные данные или всё же это пустая трата времени?

    Код:
    #include <a_samp>
    #include <streamer>
    
    CreateDynamicObject(1111, 1000.39999, 2000.49999, 30.59999,   0.00000, 90.00000, 90.00000);
    Последний раз редактировалось KillStreak; 06.03.2017 в 08:33.

  2. #2
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Странный вопрос, обычно для оптимизации упаковывают строки.

    А чего вы хотите добиться, упаковав данные значения?!

  3. #3
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Странный вопрос, обычно для оптимизации упаковывают строки.

    А чего вы хотите добиться, упаковав данные значения?!
    Пока не знаю чего хочу добиться, ведь я не представляю понятия как их упаковать. Я предполагаю наверное какую-то оптимизацию, что конечно маловероятно.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    Пока не знаю чего хочу добиться, ведь я не представляю понятия как их упаковать. Я предполагаю наверное какую-то оптимизацию, что конечно маловероятно.
    Вместо того, чтоб оптимизировать ещё не написанный код, лучше займись реализацией своих идей.
    Оптимизировать будешь когда уже всё будет написано и когда будешь видеть, что твоя реализация привела к лагам.
    В этом случае ты будешь видеть действительно проблемный код и сможешь понять как в следующий раз написать этот код так, чтоб он не был проблемным.
    А то, чем пытаешься сейчас заниматься ты - дело крайне неблагодарное. И оно тебя ни к чему хорошему не приведёт.
    Сейчас и так уже процентов под 80 всех скриптеров SA-MP - мамкины оптимизаторы. А вот тех, кто привносит в SA-MP что-то новое и реализует интересные системы - оставшиеся 20%.
    Оптимизировать "на лету" будешь тогда, когда уже научишься на своих ошибках. А пока не трать своё время на попытки оптимизировать то, что и без оптимизации хорошо работает.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вместо того, чтоб оптимизировать ещё не написанный код, лучше займись реализацией своих идей.
    Этим я и занимаюсь, у меня свой подход и своё виденье.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Оптимизировать будешь когда уже всё будет написано и когда будешь видеть, что твоя реализация привела к лагам.
    У меня есть кое какой код, просто интересно узнать как еще с ним можно поступить.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    А то, чем пытаешься сейчас заниматься ты - дело крайне неблагодарное. И оно тебя ни к чему хорошему не приведёт.
    Форум посвящён Pawn и на это нацелен, а я новичок который не способен еще грамотно мыслить в этой среде и задаёт вопросы интересующие его которые по его мнению следует ему узнать, ведь как я говорил раньше у меня свой подход и своё виденье на это.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Сейчас и так уже процентов под 80 всех скриптеров SA-MP - мамкины оптимизаторы. А вот тех, кто привносит в SA-MP что-то новое и реализует интересные системы - оставшиеся 20%.
    Откуда такие цифры, ты обладаешь глобальное статистикой? Ваш форум не единственный и не всё сообщество обитает тут.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Оптимизировать "на лету" будешь тогда, когда уже научишься на своих ошибках. А пока не трать своё время на попытки оптимизировать то, что и без оптимизации хорошо работает.
    Хороший совет, но опять же я пытаюсь выискать то что мне интересно в данный момент.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Я уже бывал в этих темах, новая информация тяжело воспринимается. Я не хочу что бы за меня всё делали, мне казалось что хоть кто то покажет небольшой пример от которого и можно оттолкнуться.
    Последний раз редактировалось KillStreak; 06.03.2017 в 11:26.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    Этим я и занимаюсь, у меня свой подход и своё виденье.
    ...
    У меня есть кое какой код, просто интересно узнать как еще с ним можно поступить.
    ...
    Форум посвящён Pawn и на это нацелен, а я новичок который не способен еще грамотно мыслить в этой среде и задаёт вопросы интересующие его которые по его мнению следует ему узнать, ведь как я говорил раньше у меня свой подход и своё виденье на это.
    ...
    Хороший совет, но опять же я пытаюсь выискать то что мне интересно в данный момент.
    Ну а я просто даю тебе совет по поводу того, что сейчас тебе следовало бы на другие вещи внимание обратить, а не пытаться упаковать аргументы для CreateDynamicObject. Для начала лучше разберись с тем, как вообще сервер работает с памятью, сколько её и стоит ли вообще пытаться что-то упаковывать в текущих реалиях. Ну или продолжай дальше забивать свой мозг ненужной тебе информацией. Как я уже написал ран


    Цитата Сообщение от KillStreak Посмотреть сообщение
    Откуда такие цифры, ты обладаешь глобальное статистикой? Ваш форум не единственный и не всё сообщество обитает тут.
    Во-первых, я написал, что это примерно.
    Во-вторых, я тоже сижу не только на данном форуме и вижу как большинство гонится за псевдооптимизацией, что приводит к тому, что форумы наполнены кучей одинаковых, но "оптимизированных" систем. А когда какой-нибудь скриптер, который особо не парится над оптимизацией, реализует какую-то свою идею, не оптимизируя при этом код до идеала (тот же инвентарь на текстдравах), всё сообщество "аптимизаторов" вдруг разрывает на части от того, что такую "сложную" систему возможно реализовать в SA-MP.
    Забивая себе голову оптимизацией того, что и так нормально работает, ты ограничиваешь себя в реализации других идей, как минимум, потому, что тратишь своё время на эту бессмысленную оптимизацию. На дворе 21 век и мощность серверных машин, на которых запускают сервера, давно покрывает с головой все огрехи, позволяя работать даже самому кривому коду (пример - RLS). В наше время можно заставить лагать сервер лишь от поистине кривого кода (бесконечный цикл/рекурсия/использование функций не по назначению или же передача каких-то параметров, которые вызывают баги сампа). Так что советую ещё раз - не забивай голову ерундой. Пройдёт время, ты наберёшься знаний и сам начнёшь понимать как лучше реализовать ту или иную систему. А пока это время не прошло, лучше набирайся знаний, а не стопорись на псевдооптимизации
    Последний раз редактировалось DeimoS; 06.03.2017 в 11:26.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  8. Пользователь сказал cпасибо:
    KillStreak (06.03.2017)
  9. #8
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Во-вторых, я тоже сижу не только на данном форуме и вижу как большинство гонится за псевдооптимизацией, что приводит к тому, что форумы наполнены кучей одинаковых, но "оптимизированных" систем.
    Тяжело поспорить.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    А когда какой-нибудь скриптер, который особо не парится над оптимизацией, реализует какую-то свою идею, не оптимизируя при этом код до идеала (тот же инвентарь на текстдравах), всё сообщество "аптимизаторов" вдруг разрывает на части от того, что такую "сложную" систему возможно реализовать в SA-MP.
    Молодая кровь и жажда соперничества, вот как это называется. Но с тобой я согласен.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Забивая себе голову оптимизацией того, что и так нормально работает, ты ограничиваешь себя в реализации других идей, как минимум, потому, что тратишь своё время на эту бессмысленную оптимизацию.
    В основном я занимаюсь маппингом, мне крайне интересно узнать что еще можно с ним сделать. Дело даже не в оптимизации, а в том возможно ли это.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    На дворе 21 век и мощность серверных машин, на которых запускают сервера, давно покрывает с головой все огрехи, позволяя работать даже самому кривому коду (пример - RLS). В наше время можно заставить лагать сервер лишь от поистине кривого кода (бесконечный цикл/рекурсия/использование функций не по назначению или же передача каких-то параметров, которые вызывают баги сампа).
    Безусловно ты прав, но не всегда стоит действовать по этому принципу. Ведь не у всех финансовое положение позволяет работать на мощных или даже близких к хорошей мощности машин. Я видел подобные сервера и сборки паблик модов которые на них стоят, вроде ничего кривого там особо нет и на мощной машине будет работать хорошо но вот на копеечной машине всё висит и работает через раз.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    Безусловно ты прав, но не всегда стоит действовать по этому принципу. Ведь не у всех финансовое положение позволяет работать на мощных или даже близких к хорошей мощности машин. Я видел подобные сервера и сборки паблик модов которые на них стоят, вроде ничего кривого там особо нет и на мощной машине будет работать хорошо но вот на копеечной машине всё висит и работает через раз.
    Для того, чтоб даже самый неоптимизированный (не путать с кривым) мод не лагал, достаточно взять машину с минимальными требованиями для запуска SA-MP сервера (хотя там основные требования к интернет-каналу идут, как я знаю) и сейчас нужно постараться, чтоб найти хостинг с таким железом. Обычно все лаги появляются либо из-за кривого кода, либо из-за кривых настроек самого хостинга (особенно когда хостер пытается экономить и урезает всё, что только можно).
    В общем, не стоит пытаться заниматься оптимизацией до того момента, пока она реально не потребуется.

    А с маппингом ты ничего особо не придумаешь. Всё, что можно с ним сделать, это либо сократить код (повлияет лишь на читаемость и удобствно. И не всегда в лучшую сторону), либо как-то поработать с оформлением кода (нормальные названия переменных и т.п.), либо сэкономить памяти в сегменте данных, что довольно бессмысленно, ибо сэкономишь ты мизерное количество байт, при этом, скорее всего, усложнится дальнейшая работа с кодом.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  11. Пользователь сказал cпасибо:
    KillStreak (07.03.2017)
  12. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    Я уже бывал в этих темах, новая информация тяжело воспринимается. Я не хочу что бы за меня всё делали, мне казалось что хоть кто то покажет небольшой пример от которого и можно оттолкнуться.
    Ок, тогда перейдём обратно к вашему вопросу про упаковку - под ней обычно имеется в виду избавление от избыточности информации. Взять, например, те же строки, о которых упомянул выше VVWVV: в обычных, неупакованных строках на хранение одного символа отводится 1 ячейка, которая имеет размер в 4 байта, хотя для хранения символа достаточно лишь 1 байта и остальные 3 используются впустую. При упаковке строк в одну ячейку записывается 4 символа, благодаря чему используются все 4 байта ячейки и для хранения строки требуется меньше памяти.

    А теперь к вашей задаче: упаковать данные об объекте. Как вы это вообще представляете? Координаты объекта - это вещественные числа, для представления которых используются все 4 байта ячейки. В самом-самом лучшем случае (ИМХО, это из разряда фантастики - сейчас поймёте, почему) можно отсечь вещественную часть и хранить координаты в виде двухбайтовых целых чисел со знаком (от -32768 до 32767 - координаты объектов в SA-MP всё равно ограничены этим диапазоном) так, чтобы в одну ячейку умещалось два числа. Но тогда вам особым образом придётся записывать сами координаты (например, вместо пары "100.00, 200.00" будет что-то похожее на "100 << 16 + 200"), что значительно ухудшит читаемость, да ещё и тратить время на написание алгоритма для "распаковки" таких данных. И это ещё не говоря о том, что с урезанием вещественной части чисел потеряется точность расположения объектов, что критично при создании интерьеров - например, посуда, которая должна стоять на столе начнёт наполовину проваливаться под стол.

    Сами как думаете, оно того стоит? -_-

    Для сравнения, чтобы упаковать ту же строку, достаточно всего лишь указать знак "!" перед самой записью строки в кавычках или использовать функцию strpack для упаковки во время выполнения. В общем, оптимизация оптимизацией, но здравый смысл ещё никто не отменял.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  13. Пользователь сказал cпасибо:
    KillStreak (07.03.2017)
 

 

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

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

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

Ваши права

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