Доброе утро.
Возник вот такой вот вопрос, какие плагины стоит поставить сразу?
Вид для печати
Доброе утро.
Возник вот такой вот вопрос, какие плагины стоит поставить сразу?
Те, которые нужны для работы мода? Сами по себе плагины, в большинстве своём, ничего не дают, если не использовать их функционал в коде.
Да, вопрос интересный, что стоит поставить необходимого, для нормальной работы сервера?
Даже Timer Fix - плагин сугубо индивидуальный.
Во-первых, по-настоящему точные таймеры на деле нужны лишь в малом проценте случаев, которые бы оправдали все те затраты на реализацию точности в этих самых таймерах.
Во-вторых, даже проблемы таймеров актуальны далеко не для всех (собственно, достаточно погуглить упоминание этих проблем, чтоб убедиться, что очень мало людей сталкивались с ними).
И если плагин не будет в полную силу использоваться, он лишь в пустую будет жрать оперативу и дополнительно забивать поток, который и без того не резиновый. Конечно, один плагин ничего не забьёт и не создаст проблем. Но если так и дальше подключать плагины просто для того, чтоб они были, то часть ресурсов, которые можно было бы потратить на что-то полезное, вы будете тратить впустую. Так что я не советовал бы его ставить, если вы не нуждаетесь в точных таймерах (а если вы не понимаете в какие именно моменты они нужны, то они вам пока не нужны) или если вы не столкнулись с проблемами обычных таймеров.
Я бы лишь советовал держать в памяти существование инклуда "fixes", заранее изучив всё, что он исправляет. Вот его подключить можно. Каких-то других плагинов/инклудов посоветовать не могу.
А с чего ты взял, что там есть какие-то дополнительные "затраты"? Насколько знаю, в плагине не используются какие-то сложные или высокоточные расчёты. Просто принцип подсчёта времени следующего срабатывания не такой ущербный, как в SA-MP.
Частота упоминаний проблемы - отнюдь не показатель. Вот ты сам веришь, что кто-то хотя бы подумает про таймеры, возникни у них проблема с исчерпанием памяти? Я как-то в этом очень сомневаюсь.
По поводу "забивания потоков" - см. ответ на 1-ю цитату. Касаемо оперативы - плагин не сильно сложный и едва ли его можно назвать требовательным. Мало того, со стандартных таймеров может утечь куда больше памяти (не говоря уже о том, что это потребует проводить время от времени рестарт сервера, дабы перестраховаться от исчерпания памяти).
Так TimerFix к той же категории фиксов и относится (даже API не какой-то свой, а полностью совместимый со стандартным - подключил и забыл), разве нет?
Так я и не говорил про сложные расчёты. Речь о том, что плагин в любом случае будет жрать ресурсы, а не о том, что он будет жрать их неоправданно много. Как по мне, странно растрачивать какие-либо ресурсы на то, что никакой фактической пользы приносить не будет. А уж если однажды появится нужда в точных таймерах или баги сампа дадут о себе знать - подключить плагин не составит труда.
Да даже если загуглить темы с крашами сервера, всё равно упоминаний проблем с таймерами практически не найдёшь (если вообще найдёшь). Не думаешь же ты, что те, кто сталкивался с крашами из-за таймеров, просто не могли определить причину и забрасывали разработку поголовно. Уж за 10+ лет эта проблема явно всплыла бы, если бы была такой актуальной. Это явно не баг последних версий SA-MP.
Да и я опираюсь больше на свой опыт работы на разные проекты + на опыт помощи людям с решением разнообразных проблем. И проблемы с таймерами встречал только в синтетических тестах, специально создавая кучу таймеров и пытаясь посмотреть как они себя поведут при исчерпании лимита ID таймеров. Сейчас, например, уже второй год работаю над модом проекта с онлайном 300+, у которых мод, мягко говоря, не самый хороший, но даже в том случае нет никаких проблем с таймерами, хоть используются они там во многих системах. И в прошлом таких проектов было не меньше.
Собственно, выше я ответил. Имхо, но в данном случае это попытка исправить ещё не существующую проблему. Как выше писал, с учётом того, что для применения фиксов достаточно подключить плагин, не вижу какого-либо смысла держать его без явных на то причин.
В плане ресурсов CPU - плагин тратит на обработку таймеров те такты, которые не тратит сервер на обновление стандартных таймеров. Логично же, нет?
Про потребление оперативы, повторюсь, плагин не сильно сложен. Что может занимать много места - так это стандартная библиотека C/C++, но она используется и другими плагинами, т.е. по идее должна быть для них общей.
Вообще слово "жрать" - это точно не про TimerFix. К примеру, в тех же стандартных таймерах под название вызываемой функции отводится массив на 255 символов, в то время как достаточно всего 32 - вот к такого вида расточительству слово "жрать" применимо.
Опять же, как люди вообще должны понять, что это связано именно с таймерами? Речь не конкретно о тебе, а о других скриптерах, которые не читают Pro-Pawn Wiki и едва ли знают о наличии утечек в таймерах :)
Краш возникает при длительной работе сервера при абсолютно рандомных условиях. Единтственная мизерная зацепка, которая может помочь - это если в логах окажется адрес SetTimer/SetTimerEx, но это ещё если у сервера ещё хватит памяти под составление лога. Да и сам по себе адрес SetTimer говорит только о том, что в этой функции провалилась аллокация, но не о том, что это источник утечки памяти - это просто совпадение, которое может натолкнуть на мысль (если скриптер в курсе про утечки в таймерах - иначе и это может показаться случайностью, не связанной с крашем напрямую).
ИМХО, владелец сервера, скорее, просто забьёт на эту проблему (возможно, ассоциировав её с каким-то сложным/требовательным к памяти плагином) и по возможности сделает автоматический перезапуск сервера при падении, если такового ещё нет.
В разработке неточность в работе чего-либо и уж тем более потенциал для краша обычно считаются проблемами, которые стоит если не исправлять, то хотя бы искать обходные решения и хоть как-то подстраховываться. Но то такое. Не впервой приходится замечать, что в сообществе SA-MP любая "несмертельная" проблема воспринимается как норма.
В любом случае, если сама по себе неточность таймеров для тебя по умолчанию не проблема - это ещё не значит, что это не проблема для других, кто читает эту тему. Собственно, из-за этого я и начал сие обсуждение.
Таки я ещё во втором своём сообщении написал, что Timer Fix есть смысл ставить только если нужны точные таймеры или если баги сампа, связанные с таймерами, дали о себе знать :) Я не отрицаю, что кому-то это может быть полезным. Я сам использовал этот плагин для реализации нескольких заказов. Но в теме-то речь о списке обязательных для установки плагинов. И мой основной посыл в том, что если нет конкретной востребованности в функционале плагина, то и особого смысла в его установке нет.
Касаемо твоего обсуждения по поводу потребления ресурсов. Опять же, я нигде не утверждал, что плагин потребляет слишком много ресурсов. Основная мысль в моих сообщениях - зачем выделять ресурсы на то, от чего профита никакого нет?
Касаемо отслеживания причин - опять же, речь о том, что на деле проблема таймеров крайне не актуальна.
Да и ты говоришь про тех, кто "не читает Pro-Pawn Wiki и едва ли знает о наличии утечек в таймерах". Эти люди вряд ли и о существовании Timer Fix знают :) И даже если мы сейчас каким-то образом заставим всех посетителей данного форума поставить себе данный плагин, вряд ли те, о ком ты говоришь, узнают про утечки или про плагин.
Ну и, опять же, подытожу то, что я не призываю всех отказываться от данного плагина и не говорю, что он потребляет слишком много ресурсов. Мой основной посыл в том, что точные таймеры нужны далеко не всегда, а проблемы стандартных таймеров довольно специфичны (а я напомню, что речь в данной теме о том, какие плагины нужно обязательно ставить). И ставить плагин стоит только тогда, когда вам нужно реализовать систему, которая так или иначе будет упираться в проблемы стандартных таймеров (неточность/утечки памяти). В противном случае от того, что вы поставите плагин на сервер, никакого профита вы не получите, но определённую часть ресурсов плагин всё же сожрёт. Да, будет затрачено несущественное количество ресурсов, но эти ресурсы всё равно будут потрачены впустую и могли бы быть потрачены на что-то более полезное. Такой подход безосновательной растраты ресурсов рано или поздно приведёт к тому, что все эти незначительные растраты в совокупности станут очень заметны... Но это уже лирика.
В общем, я лишь советую решать проблемы по мере их поступления, а не бороться с ветряными мельницами.
Странно, я думал, что спрашивали о плагинах и фиксах, "необходимых для нормальной работы" и о TimerFix в частности.
И, к слову, если стандартные таймеры срабатывают не через то время, что указал пользователь, а через то, которое вздумается серверу - ИМХО, сложно назвать это "нормальной работой", особенно когда за каждые 60 секунд накапливается ~10(!) секунд погрешности.
Нет, ну может быть по меркам SA-MP это нормально (может быть даже слишком хорошо) на фоне десятков других багов, но с точки зрения здравого смысла - едва ли.
Справедливости ради, в TimerFix тоже аккумулируется погрешность, но для плагина она гораздо меньше (у меня получилось всего ~200 мс на минуту), и полностью отсутствуют отклонение только в fixes2 (вернее, оно варьируется в пределах ~20 мс, но не накапливается при каждом срабатывании таймера).