Я работаю над приложением .NET и испытываю ошибку памяти (я Java-разработчик, который может делать другие вещи), я думал о производительности. То, о чем я пишу, не было проблемой с памятью. Проблема памяти только что заставила меня задуматься.
Я повторил тенденцию в своем приложении ASP.NET, которую я использовал в бесчисленных приложениях J2EE: использование бизнес-объектов для заполнения выпадающих списков. Чем больше я об этом думаю, тем больше мне это не нравится. Например, в приложении, над которым я работаю, у нас есть выпадающий список текущих проектов. Проект - это граф объектов. Однако, чтобы создать список, мы возвращаем все проекты, создаем график и используем только идентификатор и отображаемое имя. Это кажется ужасной тратой. Чтобы быть справедливым, слой DAL полностью написан от руки. Ведущий архитектор не допустит ORM, как NHibernate.
Я понимаю, что все эти объекты находятся в GEN0 и быстро собирают мусор. Меня беспокоит то, что я облагаю налогом GC. 5% процессорных ресурсов, необходимых для обработки ГХ, составляют 5% процессорных ресурсов, которые я не могу использовать где-либо еще. Этот сайт - один из немногих, которые я действительно уважаю. Что вы все думаете? Разве плохо для этого использовать модель сущности? Должен ли я создать набор объектов IdValue, которые содержат только отображаемое значение и идентификатор? Будет ли создание такого уровня объекта представления (я не думаю, что это пойдет на бизнес-уровне) просто создать избыточный код?
Спасибо,
JPD