Items эффективность кода

Версия Minecraft
1.7.10
Вопрос по эффективности кода, как лучше будет создавать итемы?
у нас есть 2 способа:
1) Создаем каждый итем с помощью наследования Item потом регистрируем его обьект
2)Создаем все как и прежде, но каждый итем мы получаем через мету

Почему я задал такой вопрос? я более подробно прочитал про обьекты(экземпляры) и узнал, что на каждый экземпляр создается ссылка на место в памяти, а так же сразу резервируется память под все переменные
 
Решение
Открываем класс Item и смотрим на нестастические поля.
Java:
protected int maxStackSize = 64;
private int maxDurability;
protected boolean bFull3D;
protected boolean hasSubtypes;
private Item containerItem;
private String potionEffect;
private String unlocalizedName;
@SideOnly(Side.CLIENT)
protected IIcon itemIcon;
protected String iconString;
Если система х64:
2 инта (2 * 4 = 8 байт), 2 булеана (2 * 1 = 2 байта), 5 ссылочных типов (5 * 8 = 40 байта), заголовок 16 байт, + 6 байт для выравнивания до кратности. Итог 72 байта на объект.

Если тебе жалко 72 байта, то ок, используй мету.

Если на самом деле, то это не то место, где нужно думать об оптимизации.
Так с отдельными классами как бы так же. Разница, что с классами для каждого итема мод занимает чуть больше места но расходуется меньше ресурсов для создания экземпляров одного класса. я писал обоими вариантами и честно говоря разница только в размере мода на пару Кб, а так ни на озу ни на производительность не влияет
 
Открываем класс Item и смотрим на нестастические поля.
Java:
protected int maxStackSize = 64;
private int maxDurability;
protected boolean bFull3D;
protected boolean hasSubtypes;
private Item containerItem;
private String potionEffect;
private String unlocalizedName;
@SideOnly(Side.CLIENT)
protected IIcon itemIcon;
protected String iconString;
Если система х64:
2 инта (2 * 4 = 8 байт), 2 булеана (2 * 1 = 2 байта), 5 ссылочных типов (5 * 8 = 40 байта), заголовок 16 байт, + 6 байт для выравнивания до кратности. Итог 72 байта на объект.

Если тебе жалко 72 байта, то ок, используй мету.

Если на самом деле, то это не то место, где нужно думать об оптимизации.
 
итем мы получаем через мету
Че?

А вообще регистрация предметов происходит на стадии загрузки, можно вообще не париться по поводу оптимизации этого места
 
можно вообще не париться по поводу оптимизации этого места
Из за таких как вы модпаки и запускаются по 5-10 минут!
~~~
Не стоит закрывать глаза даже на самую мелкую оптимизацию, любая оптимизация это хорошо! (Кроме уничтожения человечества)
 
грег столько грузится
В гречке оптимизация вообще никакая, мод не так чтобы прям огроменный но жрать 1Гб озу за раз...
Хотя даже на моём калькуляторе с греченькой майн запускается в среднем за 1-2 минуты, возможно так из-за того, что у меня SSD. :p
 
Последнее редактирование:
Назад
Сверху