Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


 

**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 100руб/мес, Текстовая 50руб/мес.
Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 36
  1. #21
    Аватар для Пельмень
    Пользователь

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

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

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

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

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

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

    Steve Pavlina

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

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

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

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

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

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

  8. #26
    Аватар для VVWVV
    Пользователь

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

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

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

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

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

  10. #28
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

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

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    435
    Репутация:
    197 ±
    Цитата Сообщение от 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
    Сообщений
    173
    Репутация:
    113 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ок, я на самом деле давно уже в курсе об уязвимости в lref.s.pri/alt (недавно зарепортил её и ещё несколько других разработчику Pawn), просто хотел проверить знание теории.
    Касаемо реализации, никогда не считал использование уязвимостей хорошим тоном - скорее, грязным хаком, коим это дело и является. Также остаётся под вопросом совместимость с JIT. Насколько помню, код инициализации в y_amx в сочетании с JIT вызывает краш как раз на моменте выполения инструкции lref.s.pri.
    Только вот amx_assembly не есть y_amx, хотя реализован он благодаря этой библиотеке, у юзлесса практически всё сделано на багах павн

 

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

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

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

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

Ваши права

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