У меня есть простой класс Person
с 4 строками и целым числом.Память эффективный способ хранения многих мелких объектов
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string PostalCode { get; set; }
}
Нам нужно хранить большое количество данных в памяти. Коллекция должна быть доступна для поиска в любом поле. Элементы будут добавлены и удалены как часть жизненного цикла.
Шаблон Flyweight не работает, потому что на объекте нет тонны повторяющихся значений, только на уровне поля. Какая модель или стратегия будут работать лучше всего, чтобы ограничить накладные расходы памяти и хорошо работать?
Сколько стоит «много»? У вас есть несколько сотен тысяч, несколько миллионов, миллиарды? Память дешевая; у большинства людей их много. Если вы говорите миллионы или меньше, просто делайте все, что проще, вам, вероятно, не нужно беспокоиться о сокращении объема памяти. Если у вас их больше, вы, вероятно, захотите поместить их в базу данных, и вам не захочется, чтобы все они были в памяти сразу в программе на C#. – Servy
Я бы не согласился с тем, что у большинства людей много памяти или возможность обновления до большого количества. Большая часть наших целевых клиентских ПК имеет всего лишь пару концертов в лучшем случае, легко пробить, что в 64-битном приложении .NET делает хруст числа. Но, конечно, это все относительно. –
как долго строка? – Jodrell