- Баллы
- 108
- Имя в Minecraft
- CraftCoderr
Entity тоже надо чистить?Локация на то и локация.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Entity тоже надо чистить?Локация на то и локация.
Если есть метод getWorld, то да.Entity тоже надо чистить?
Не помогло, может утечка может происходить из-за того, что игрок вышел с сервера будучи в данном мире, а объект игрока не отгрузился и держит локацию из этого мира. Если так, то как выгрузить объект игрока?Локация на то и локация.
Дамп сделать не проблема, но проанализировать не получается.А как-то сделать дамп и поискать в нём?
Bukkit.getPlayers() возвращает массив, если он не клонирует массив, то можно попробовать обнулить объект в этом массиве.Не помогло, может утечка может происходить из-за того, что игрок вышел с сервера будучи в данном мире, а объект игрока не отгрузился и держит локацию из этого мира. Если так, то как выгрузить объект игрока?
Что нужно в дампе искать? Мне показывает, что большую часть памяти занимает массивы char, еще немного меньше память массивы byte, и все остальное немного занимает.А как-то сделать дамп и поискать в нём?
Чаще всего, если что-то не работает, это твой косяк, а не используемого...Короче, мир не выгружался потому что не выгружался игрок, сейчас пофиксил выгрузку игрока и все заработало. Т.е. косяк был у меня, а не в ведре(((
А как сохранить дамп в файл? В visualvm нет такой кнопки(Полностью дамп показывай, нихера не понятно. Но скорее всего ссылки висят где-нибудь в lastCraftView или как-то так.

Не знаешь откуда эти зависимости? http://rubukkit.org/attachments/snimok-png.38818/Забили на тебя, увы![]()
for (TileEntity tileEntity : ((CraftWorld) world).getHandle().tileEntityList)
{
if (tileEntity instanceof IInventory)
{
Iterator<HumanEntity> entityIterator = ((IInventory)tileEntity).
getViewers().iterator();
while (entityIterator.hasNext())
{
HumanEntity human = entityIterator.next();
if ((human instanceof CraftPlayer) &&
!((CraftPlayer) human).isOnline())
{
entityIterator.remove();
}
}
}
}
При перезагрузке сервера на процессор идет очень большая нагрузка, следовательно будут страдать рядом стоящие сервера, а если у меня их 70 на одной машине? Если сразу несколько уйдут в рестарт?По-моему, проще перезагрузить ссервер и провелать все нужные операции в Shutdown JVM Hook.
Эм, зачем? Программные потоки и процессорные потоки это разные вещи...Лол. Как на одной машине можно столько держать? Процессор минимум на 70 потоков должен быть.