@MishkaVNorky

Есть ли смысл использовать byte, если в операция конвертирует в int??

Привет.

Технический вопрос. Игры мобильные.

Допустим для оптимизации потребления памяти, я хочу вместо int использовать byte (число не будет больше 255). Но есть ли смысл, если в сравнениях и вычислениях byte конвертируется в int (я читал что на это тратится время, на конвертацию).

То есть с одной стороны получается экономия памяти (мелкая) с другой постоянная конвертация????? Они что с дуба рухнули?

byte a;
byte b;

if (a < b) {

}

Конвертация (bool int.operation < (int left, int right))

if (a == b) {

}

Конвертация (bool int.operation == (int left, int right))
  • Вопрос задан
  • 463 просмотра
Решения вопроса 3
@kttotto
все, что .NET
Уменьшать размеры переменных стоит только если Вы их будете где-то хранить в бд, на жестком и эти данные могут хорошо разрастить. Если же все работает в памяти, то действительно, нет смысла такой конвертации, для машины самый удобный тип для работы, это int, и большинство примитивных типов он неявно будет приводить к нему. Действительно, есть рекомендации не использовать без надобности типы shot, ushot и т.д., т.к. внутри они всеравно приводятся к int.

В дополнение пара ссылок: сюда и сюда

И цитата из них
следует отметить, что в C # все арифметические выражения производятся на int. Это означает, что вам нужно будет увеличить число байтов до типа int, чтобы выполнить вычисления на них
Ответ написан
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
То есть с одной стороны получается экономия памяти (мелкая)

Не будет экономии даже мелкой, ибо по дефолту сработает выравнивание памяти в большинстве случаев.
https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%80%D...
Ответ написан
hePPer
@hePPer
нет, процессору удобнее работать с числами "своей" разрядности. т.е. х86 - Int32, х64 - Int64
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы