Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[admin] bukkitinsider - производительность плагинов revisited [1337]

Статус
Закрыто для дальнейших ответов.

apiocera

Активный участник
Пользователь
Баллы
78
Привет, я недавно (ну как недавно, начал одним пасмурным уикэндом в октябре, и с тех пор спорадически коммичу) написал плагин, который перехватывает все эвенты, чтобы замерить, насколько долго они выполняются. Еще он умеет отключать плагины так, что они об этом узнают последними - ну и включать, естественно, то есть, теоретически, можно с его помощью перезагружать плагины, не выключая сервер. Однако, основная цель, все же, замерять среднее время выполнения listener'ов у плагинов.

Вот вам скриншот:
ZKall.png

Для тех гурманов, которые предпочитают смотреть на результаты плагинов после боя - вот вам результаты работы плагина за чуть менее чем сутки на достаточно нагруженом сервере (как вы можете заметить, в позапрошлую полночь там было 60 человек онлайн).

Команды плагина:
  • isp all - показать всю информацию
  • isp plugin <плагин> - показать все про конкретный плагин
  • isp plugins - вывести список плагинов
  • isp event <эвент> - показать все листенеры на данный эвент
  • isp events - список эвентов, которые слушает хотя бы один плагин
  • isp scheduler - список запланированных задач
  • isp disable <плагин> - отключить плагин (регистрозависимо, нужно вводить именно PermissionsEx, а не permissionsex)
  • isp enable <плагин> - включить плагин (тоже регистрозависимо)
  • isp setout console - выводить всю информацию в консоль сервера (по умолчанию)
  • isp setout file <файл> - выводить всю информацию в файл
Важная информация: вывод в чат не предусмотрен. Однако команду можно ввести из чата, если вы оп - просто вывод будет в консоли, ну или в файле. Так же, если команда ничего не вывела - это нормально, возможно ей вывод и не требуется. Тем более, если вы направили вывод в файл - ну зачем выводить что-то в консоль, если все выводится в файл? Другое дело, если вылетит exception - это значит, что что-то не так, и вам стоит мне рассказать как, что и почему.
Вот так вот. Развлекайтесь. Не забудьте рассказать, что работает, а что нет.
А, да, русского языка там нет, но названия эвентов, классов и плагинов переводить нельзя, а остального там исчезающе мало.
И еще. этот плагин достаточно жестко завязан на класс org.bukkit.plugin.SimplePluginManager, который просто скопипастен из исходников Bukkit с целями отнаследоваться от него и кое-что поменять. Судя по всему, я его копипастил из этого коммита. В 1337 он работает. В предыдущих версих он может и не работать. В последующих тоже может и не работать, но я постараюсь фиксить по мере необходимости.

Скачать
Плагин: bukkit dev
Исходники: тоже bukkit dev
Тред на bukkit.org
 
И это ты сам сделал?:eek:
 
А то. Только я немного запутался с версиями, но, если не ошибаюсь, эта должна быть последней. Будь проклят тот день, когда я сел за баранку этого SVN.
 
То что нужно. Отлично. Молодец)

upd Сей плагин не хочет дружить с ModifyWorld. Сразу крашит его
 
Великолепно:). Но такой плагин есть (не в обиду) PlugMan
 
Великолепно:). Но такой плагин есть (не в обиду) PlugMan
Заметьте, что этот плагин был в процессе написания с октября 2011, а PlugMan был опубликован на bukkitdev в январе 2012. Кроме того, следовало бы отметить про себя, что ни здесь, ни на форумах bukkit.org, я оочень давно не участвовал в дискуссиях, и вообще спихнул разработку этого плагина другому чуваку.
 
:) Мне очень понравилась идея с показом информации "Кто какие эвенты слушает".
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх