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 байта, то ок, используй мету.

Если на самом деле, то это не то место, где нужно думать об оптимизации.
1,031
19
87
Так с отдельными классами как бы так же. Разница, что с классами для каждого итема мод занимает чуть больше места но расходуется меньше ресурсов для создания экземпляров одного класса. я писал обоими вариантами и честно говоря разница только в размере мода на пару Кб, а так ни на озу ни на производительность не влияет
 
2,505
81
397
Открываем класс 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 байта, то ок, используй мету.

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

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