У меня есть консольное приложение, которое позволяет пользователям указывать переменные для обработки. Эти переменные бывают трех разновидностей: строковые, двойные и длинные (наиболее часто используемые типы — это двойные и длинные). Пользователь может указать любые переменные, которые ему нравятся, и в любом порядке, поэтому моя система должна это обрабатывать. С этой целью в моем приложении я хранил их как объект, а затем применял/удалял их по мере необходимости. Например:
public class UnitResponse
{
public object Value { get; set; }
}
Насколько я понял, объекты в штучной упаковке занимают немного больше памяти (около 12 байт), чем стандартный тип значения.
Мой вопрос: было бы более эффективно использовать динамическое ключевое слово для хранения этих значений? Это может обойти проблему упаковки/распаковки, и если это будет более эффективно, как это повлияет на производительность?
РЕДАКТИРОВАТЬ
Чтобы обеспечить некоторый контекст и предотвратить «вы уверены, что используете достаточно оперативной памяти, чтобы беспокоиться об этом» в моем худшем случае, у меня есть 420 000 000 точек данных, о которых нужно беспокоиться (60 переменных * 7 000 000 записей). Это в дополнение к множеству других данных, которые я храню о каждой переменной (включая несколько логических значений и т. д.). Таким образом, сокращение памяти имеет ОГРОМНОЕ влияние.