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