Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 3 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя
Показано с 21 по 30 из 36
  1. #21
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Я построил вопрос абстрактно, не уточняя какие именно функции будут использоваться в вашем коде. Таким образом, вы ещё не ответили на мой вопрос.
    Не волнуйся, если вдруг мне придется писать что то, и что конечно маловероятно писать мод, то он не задохнется от не оптимизированного кода

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Пельмень Посмотреть сообщение
    Он явно не будет задыхаться от неоптимизированного numargs) и сомневаюсь что вообще от чего то задохнется, где разница с "оптимзированным" вариантом для редкоиспользуемых функций будет доля миллисекунд
    Он будет задыхаться от кучи других неоптимизированных функций, если уж совсем забить на оптимизацию. То же самое и с памятью: сегодня ты забил на подсчёт в одном месте, завтра в другом, послезавтра в третьем - и через неделю получил выход за пределы массива и скрипт в 100 строк, который компилируется по 3 минуты.

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

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

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    VVWVV (25.12.2016)
  4. #23
    Аватар для Disinterpreter
    Проверенный

    Статус
    Оффлайн
    Регистрация
    02.01.2014
    Сообщений
    88
    Репутация:
    91 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    И да, касаемо той же GetNumberOfArguments. Мне казалось, что адекватный человек понимает, что сию функцию есть смысл использовать только в местах, где частота вызова кода огромная и скорость его выполнения очень значима.
    Я такой ужасный любитель интерпретируемых языков с утиной типизацией и любитель грамотного и красивого API-дизайна, скажите практическое применение функции?
    Где её можно применить в гейммоде?
    Культурный обмен во все времена был одним из важных развлечений. (С) Татикома из "Призрак в доспехах: Синдром одиночки"

  5. Пользователь сказал cпасибо:
    $continue$ (25.12.2016)
  6. #24
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Disinterpreter Посмотреть сообщение
    Я такой ужасный любитель интерпретируемых языков с утиной типизацией и любитель грамотного и красивого API-дизайна, скажите практическое применение функции?
    Где её можно применить в гейммоде?
    Например, при работе с #emit.

  7. #25
    Аватар для Disinterpreter
    Проверенный

    Статус
    Оффлайн
    Регистрация
    02.01.2014
    Сообщений
    88
    Репутация:
    91 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Например, при работе с #emit.
    А конкретнее? Или получается вся эта функция бесполезна?
    Культурный обмен во все времена был одним из важных развлечений. (С) Татикома из "Призрак в доспехах: Синдром одиночки"

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Disinterpreter Посмотреть сообщение
    А конкретнее? Или получается вся эта функция бесполезна?
    Если говорить конкретнее, то она чаще всего используется в цикле, который может содержать #emit.

    PHP код:
    for (new GetNumberOfPublics(); != 0; --i)
    {
         
    // #emit код

    Последний раз редактировалось VVWVV; 25.12.2016 в 22:35.

  9. #27
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Он будет задыхаться от кучи других неоптимизированных функций, если уж совсем забить на оптимизацию. То же самое и с памятью: сегодня ты забил на подсчёт в одном месте, завтра в другом, послезавтра в третьем - и через неделю получил выход за пределы массива и скрипт в 100 строк, который компилируется по 3 минуты.
    Только использовать нативную функцию, но чуть медленней и целенаправленно писать говнокод - разные вещи. Реально игрок оценит лишь плохо работающий алгоритм по эффективности, а не микрооптимизации (хотя конечно, в каких-нибудь циклах или ещё каких-то слабых местах лучше и максимально стараться время выполнения сокращать). Так что это скорее крайности.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Ок, я на самом деле давно уже в курсе об уязвимости в lref.s.pri/alt (недавно зарепортил её и ещё несколько других разработчику Pawn), просто хотел проверить знание теории.
    Касаемо реализации, никогда не считал использование уязвимостей хорошим тоном - скорее, грязным хаком, коим это дело и является. Также остаётся под вопросом совместимость с JIT. Насколько помню, код инициализации в y_amx в сочетании с JIT вызывает краш как раз на моменте выполения инструкции lref.s.pri.
    Кроме того, непонятно, в какой реальной ситуации может пригодиться такая функция - разве что в какой-нибудь библиотеке с кучей других хаков, наподобие y_amx, в которой реализован командный процессор и прочие поделия, которые по-хорошему следовало бы делать без всяких костылей в виде плагина.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Также остаётся под вопросом совместимость с JIT. Насколько помню, код инициализации в y_amx в сочетании с JIT вызывает краш как раз на моменте выполения инструкции lref.s.
    Я не знаю что там в y_amx, но код компилируется отлично. А вот, например, динамический вызов реагирует с ним плохо:
    PHP код:
    #emit lctrl 6
    #emit add.c 0x1C
    #emit push.pri

    #emit load.s.pri addr
    #emit sctrl 6 

  12. #30
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ок, я на самом деле давно уже в курсе об уязвимости в lref.s.pri/alt (недавно зарепортил её и ещё несколько других разработчику Pawn), просто хотел проверить знание теории.
    Касаемо реализации, никогда не считал использование уязвимостей хорошим тоном - скорее, грязным хаком, коим это дело и является. Также остаётся под вопросом совместимость с JIT. Насколько помню, код инициализации в y_amx в сочетании с JIT вызывает краш как раз на моменте выполения инструкции lref.s.pri.
    Только вот amx_assembly не есть y_amx, хотя реализован он благодаря этой библиотеке, у юзлесса практически всё сделано на багах павн

 

 
Страница 3 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя

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

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

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

Ваши права

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