Вопрос что лучше: 2 отдельных плагина или в одном.
|
|
tavot | Дата: Среда, 25.11.2009, 21:39:43 | Сообщение # 1 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Вот тут сидел и думал над задачкой: Дано: написанные мною( коненчо громко сказанно, но без подробностей) два плагина оба работают с базой данных. Вопрос 1: Как лучше - каждый по отдельности или совместить их в один? Меня давно мучает этот вопрос, но ответа видимо для себя так и не нашел. Вопрос 2: Как поределить на сколько сильно плагин нагружает систему или кто как это определяет?
|
|
| |
Nip | Дата: Среда, 25.11.2009, 22:32:46 | Сообщение # 2 |
Лейтенант
Группа: Пользователи
Сообщений: 51
Статус: Не в сети
| Quote (tavot) Как поределить на сколько сильно плагин нагружает систему или кто как это определяет? плагин нагружает систему зависемо от таго солько раз он обращаеться к серверу, примерно в соотноешение поставим плагин ежущего танка с моделью который постоянно в зоне действия и видимости \, он нагрузет будь здоров, а плагин открывающий окошко мотд нагрузет сервер сервер если все 32 человека одновременно напишут его. А по разбитию плагинов в или в 2 это уже от тебя зависит, всеровно что тысдеделаеш 2 разных плагина они будут 1+1=2 или ты сделаеш плагин равен 2=2 разници не вижу...
|
|
| |
tavot | Дата: Четверг, 26.11.2009, 00:06:48 | Сообщение # 3 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Nip, На счет 1+1=2 я как раз и не уверен 1 каждый плагни регистрируется 2 каждый пдагин начинает улавливать одни и теже события и исполняться единовременно ( а в одном плагине, это было бы чуть последовательнее... А вот еще чтот интересно - разные моеди игроков нагружаюют сервер или нет?
|
|
| |
Nip | Дата: Четверг, 26.11.2009, 08:32:16 | Сообщение # 4 |
Лейтенант
Группа: Пользователи
Сообщений: 51
Статус: Не в сети
| Quote (tavot) А вот еще чтот интересно - разные моеди игроков нагружаюют сервер или нет? стондарт модели то врятли, ну если только у них не яркие разноцветные цвета, а то у тех у каво слабые компы фпс будет больше.
|
|
| |
[NegativkO] | Дата: Четверг, 26.11.2009, 09:19:42 | Сообщение # 5 |
Полковник
Группа: Пользователи
Сообщений: 243
Статус: Не в сети
| Quote (Nip) а то у тех у каво слабые компы фпс будет больше Полюбому
|
|
| |
tavot | Дата: Четверг, 26.11.2009, 12:00:15 | Сообщение # 6 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Nip, Компы юзверей меня в данном вопросе не интересуют - сейчас речь о сервере.
|
|
| |
DaTa | Дата: Четверг, 26.11.2009, 17:18:17 | Сообщение # 7 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Попытаюсь примерно отсортировать, по тормознутости, сколько вспомню: 1)Чтение из файла во время игры. 2)Форварды вроде FrameStart, PreThink, PostThink а так же Think для ентитей. 3)Очень много set_task 4)Массовое действие над игроками, особенно в комбо с другими пунктами. 5)Запись в файл. Если буфер не успевает сбрасываться, то идет задержка. Возможно еще сокеты =) И если плагин использует много всяких событий и часто обрабатывает их (всякие там варкрафт моды и т.д.) то это тоже чревато лагами. Если особо тяжелые участки кода выполняются во время не игровых событий(начало раунда, загрузка сервера/карты), то это и не страшно. Еще частая отправка hud сообщений лагает клиент, кажется что сервер лагает =)
|
|
| |
tavot | Дата: Пятница, 27.11.2009, 03:12:40 | Сообщение # 8 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| DaTa, Спасибо, полезно знать! Вот про чтение файла я сам догадывался... А обращени к sql базе наверное тоже дает такой эффект или по меньше? Просто сейчас пишу статистику к предатор серверу, не хочется переделывать когда все будет доделанно ( Хотя на данный момент там запросы: При putinserver проверяется есть ли игрок в базе ( думаю удалю...) если нет - то вносим. При командах /rank /top15 При выходе игрока с сервера запрос ( внос данных в базу) При plugin_end - еще 2 запроса в базу. Дорабатывал тут зомби банк. Там при заходе игрока берутся данные и держатся в массивах до его выхода... получается всего 2 запроса, но там и данных с гулькин нос...
Сообщение отредактировал tavot - Пятница, 27.11.2009, 03:14:33 |
|
| |
DaTa | Дата: Суббота, 05.12.2009, 01:13:41 | Сообщение # 9 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Новая("") версия модуля мускула делает запрос во второй нити процесса, результат же возвращается в callback, так что на игру особо не влияет =)
|
|
| |
tavot | Дата: Суббота, 05.12.2009, 01:28:21 | Сообщение # 10 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| DaTa, Спасибо ) Из всего понял только на игру особо не влияет, но на свой вопрос это достаточный ответ ) во второй нити процесса, результат же возвращается в callback тут ни xutj(чего) не понял - так как на чего об этом не знаю ) пунтосвитчер балуется )
Сообщение отредактировал tavot - Суббота, 05.12.2009, 01:29:07 |
|
| |
Agronom[SLK] | Дата: Суббота, 05.12.2009, 23:53:35 | Сообщение # 11 |
Полковник
Группа: Пользователи
Сообщений: 222
Статус: Не в сети
| А я вот тож думаю, поставить мне <одну розетку и на неё тройник> или <одну двойную> )) А вообще есть лимит на кол-во плагинов (255 )) ? А то во многих "модульных" играх обычно именно такое ограничение.
МНЛТиП - Метод Нубского Логического Тыка и Подстановки
|
|
| |
DaTa | Дата: Вторник, 15.12.2009, 00:37:51 | Сообщение # 12 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Нету, там каждый новый плагин динамически занимает память. Quote CPluginMngr::CPlugin* CPluginMngr::loadPlugin(const char* path, const char* name, char* error, int debug) { CPlugin** a = &head; while (*a) a = &(*a)->next; *a = new CPlugin(pCounter++, path, name, error, debug); return (*a); } Я бы писал как можно раздельнее плагины, тогда хоть можно разобрать свой код и найти ошибки. Но вот если нужна связь между разными частями плагина, то я предпочитаю так и оставлять их в одном, потому что в использовании всяких фокусов, вроде глобальных таймеров и нативов можно запутаться, особенно когда редактируешь один из них. Добавлено (15.12.2009, 00:37:51) --------------------------------------------- Ах да, вспомнил еще Никогда не делайте в плагине функций обработки текста, старайтесь по максимуму заменить всевозможные функции по обработке текста на библиотечные. Дело в том, что виртуальная машина оп-кодами каждую букву будет в 3-5 раз дольше обрабатываться, чем задача ос.
|
|
| |
tavot | Дата: Вторник, 15.12.2009, 01:08:07 | Сообщение # 13 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| DaTa, а можете привести конкретный пример - чего не делать и чем заменить?
|
|
| |
DaTa | Дата: Вторник, 15.12.2009, 01:10:27 | Сообщение # 14 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Не делать обработку строк самостоятельно
|
|
| |
tavot | Дата: Вторник, 15.12.2009, 01:52:57 | Сообщение # 15 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| replace_all - так?
|
|
| |