Всем здрасти) Решил порыться в своем очень старом(самом первом моде), но сорцев на момент создания я не оставил нигде, а потому пришлось мод собирать почти с нуля. Вроде всё сделал, с ошибками явными не столкнулся, но при попытке наступить на блок у меня зависает клиент и в диспетчере процесс сжирает память до тех пор, пока она не кончится или не убить процесс. Полагаю, виноват цикл внутри блока. Говорю сразу, код еще не читал, просто перенес из деоб. мода.
Вопрос: как мне в будущем ловить такие моменты, если даже в лог ничего не пишет?
PS. Оригинальный мод работает исправно и на клиенте, и на сервере.
BlockPlateWhite.class:
public class BlockPlateWhite extends BlockPlate < public BlockPlateWhite() < super(); setRegistryName(«jump_plate_white»); setUnlocalizedName(«jump_plate_white»); >public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn) < if (Math.abs(entityIn.motionY) < 0.1D !entityIn.isSneaking()) entityIn.motionY = 0.6666666666666666D; super.onEntityWalk(worldIn, pos, entityIn); worldIn.playSound((EntityPlayer)null, pos, RegisterSound.JUMPPLATEUSE, SoundCategory.BLOCKS, 1.0F, 1.0F); double i; for (i = 0.0D; i < 6.283185307179586D; ) worldIn.spawnParticle(EnumParticleTypes.REDSTONE, pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, 0.9D, 0.9D, 0.9D, new int[0]); i += 0.01D; >>
BlockPlate.class:
34. Что такое утечка памяти? Как найти утечку памяти? Устраняем реальную утечку памяти в приложении.
public class BlockPlate extends Block < public BlockPlate() < super(Material.ROCK); setCreativeTab(Main.JUMPPLATES); >public boolean isOpaqueCube(IBlockState state) < return false; >public boolean isFullCube(IBlockState state) < return false; >public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) < AxisAlignedBB axisAlignedBB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.21D, 1.0D); return axisAlignedBB; >public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos) < AxisAlignedBB axisAlignedBB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.09D, 1.0D); return axisAlignedBB; >public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance) < if (entityIn.isSneaking()) super.onFallenUpon(worldIn, pos, entityIn, fallDistance); else entityIn.fall(fallDistance, 0.0F); >public void onLanded(World worldIn, Entity entityIn) < if (entityIn.isSneaking()) super.onLanded(worldIn, entityIn); else if (entityIn.motionY < 0.0D) < entityIn.motionY = 0.0D; if (!(entityIn instanceof net.minecraft.entity.EntityLivingBase)) entityIn.motionY = 0.0D; >> >
Лог при зависании:
[04:50:08] [Server thread/INFO] [minecraft/MinecraftServer]: Player116 joined the game [04:50:08] [Client thread/DEBUG] [FML]: Overriding dimension: using 0 [04:50:10] [Server thread/INFO] [minecraft/IntegratedServer]: Saving and pausing game. [04:50:10] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level ‘New World’/overworld [04:50:10] [Server thread/DEBUG] [FML]: Gathering id map for writing to world save New World [04:50:11] [Server thread/WARN] [minecraft/MinecraftServer]: Can’t keep up! Did the system time change, or is the server overloaded? Running 2488ms behind, skipping 49 tick(s)
Последнее редактирование: 8 Апр 2022
Мод MemoryFix — используйте меньше памяти в Minecraft! (ОБЪЯСНЕНИЕ)
Собираю мелочи для опыта
Источник: forum.mcmodding.ru
Решено Утечка памяти
Статус Решение проблемы! Перейти к решению. В этой теме нельзя размещать новые ответы.
Whoopsen
Игрок
30 Ноя 2020 18 2 8
При непродолжительной активно лаунчера начинает жестко хавать ОЗУ, не реагирует на изменение выделенной памяти в лаунчере. Если при запущенном лаунчере открыть например гугл, то через некоторое кол-во времени (достаточно быстро) лаунчер просто закрывается. В просмотре событий есть ошибка в лаунчере (скрин). Так же если лаунчер не сворачивать, то через некоторое время от вылетает с ошибкой (скрин)
Решение проблемы! Перейти к решению.
Вложения
image (4).png
4.1 КБ · Просмотры: 14
image (3).png
10.4 КБ · Просмотры: 13
image (2).png
9.4 КБ · Просмотры: 10
image (1).png
22.5 КБ · Просмотры: 12
Whoopsen
Игрок
30 Ноя 2020 18 2 8
Вылет в режиме отладки (сайт не дает загрузить сюда лог, поэтому залил на яндекс диск — https://disk.yandex.ru/d/Nt-4dN_RErDYqA)
Комментарий
Whoopsen
Игрок
30 Ноя 2020 18 2 8
1. Версия вашей операционной системы (Windows 7,8,10,11; Linux; macOS): Win 11
2. Разрядность системы (32 бит/64 бит; описано в разделе №I, п.4): 64
3. Кол-во оперативной памяти на устройстве, кол-во выделенной памяти (описано в разделе №II, п.2): 16гб, 4 гб
4. Скриншот ошибки/текст с режима откладки (в текстовом документе)/крашлог: Выше 5. Что вы предпринимали: Переустановка лаунчера, перезапуск ПК, отключение защитника виндовс, изменение выделенной памяти, обновление драйверов видюхи.
Комментарий
Kepuhka
Гл. Модератор DraconicTechnoMagic # 2, 4
Команда форума
Гл.Модератор
22 Янв 2019 727 507 105
Доброго времени суток.
Судя по краш логу, проблема именно в выделяемой памяти. В крашлоге указано, что вы выделили 1гб, что недостаточно для нормального запуска. Попробуйте переустановить java, перезапустить пк и выделить хотя бы 2гб памяти.
Жду вашего ответа.
Источник: victorycraft.ru
Тема: Утечка памяти#2
Snezhokk
Просмотр профиля
Сообщения форума
Личное сообщение
Репутация
Участник
Сообщений 566
Cервер Divine
Любимые моды WorldEdit
Любимый монстр Marzia, FroZor
Регистрация 28.03.2015
Адрес Google
5 мёртвая» память, указатель к которой, видимо, был потерян), но до сих пор не знаю её причины. Жду ваших предположений.
Последний раз редактировалось Snezhokk; 01.07.2018 в 17:50 .
Источник: minecraftonly.ru