swanrnd
@swanrnd
Издатель HTML5 игр

В чем лучше хранить числа в C#?

Сейчас такая схема:
1) Берутся числа из БД, и сохраняются в переменной string
2) Выполняются другие запросы (Update, Insert)
3) Выводятся числа на экран.
В общем так работает не один год. Но недавно мне один человек сказал, что надо все числа конвертировать в int, так как они меньше места занимают.

Числа в основном положительные от 10 000 000 до 1 000 000 000.

Что выгоднее:
1) хранить промежуточные данные как строки.
2) хранить в int, но постоянно делать Int32.Parse (int) и +
Это мелкие вещи, но хочется делать это правильно.
  • Вопрос задан
  • 2804 просмотра
Решения вопроса 4
@CAMOKPYT
Забейте, это ненужное байстоебство. После всех оптимизаций вы выиграете 1кб памяти, которые с лихвой перекроет несобранный мусор.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Да, у вас строка "1000000000" будет занимать 10 байт в памяти, а long int всего 4 байта. Не думаю что стоит этим сейчас заниматься.

Вообще обычно это все разруливается всякими EntitiManager-ами, которые сами следят за типами, и если у вас в базе данные хранятся как integer то и в итоговой структурке так же будет int.
Ответ написан
@s0m
Странный вопрос. Как и база данных, в которой числа хранятся в стринге, как и программа, которая оперирует числами в стринге.
Это сделано чтобы "сэкономить" на конвертации числа при выводе на экран?
Выгода, да и то сомнительная, от этого может быть только, если с числами не производятся никаких манипуляций, а только вывод на экран из базы данных.
Ну и плюс ещё для очень больших цифр. На в этом случае используют другие алгоритмы и формат данных в памяти.

По теме:
Число занимет 4 байта как в базе так и в памяти, а строка "1000000000" от 11 до 26 байт, в зависимости от типа стринга.
Почитай о работе с памятью, о структуре разных типов данных. Сразу отпадут подобные вопросы.
Ответ написан
@gleb_kudr
Храните в том виде, в каком используете. Если над числом совершаете арифметические действия - храните в виде числа. Если просто выводите на экран и все - храните в виде строки.
Сколько там единиц байт на одну сущность для среднего приложения значения не имеет, большая часть проблем с производительностью бывает на уровне алгоритмов и неправильно выбранных структур данных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы