У меня есть приложение на C #, которое резервирует слишком много памяти, когда этого не предполагалось.Размер исполняемого файла ~ 100 КБ, а всего приложения - несколько тысяч строк кода.
Это основной компонент, имеющий таймер, который отвечает за создание событий (экземпляров класса с несколькими атрибутами) и отправку их этому http://timeline.codeplex.com/. Способ, которым временная шкала принимает события, - это вызов функции ResetEvents и передача списка событий.Поскольку у меня есть таймер, я поместил его в код таймера.
При его запуске приложение загружает до 300 МБ памяти, и я просто заканчиваю его, чтобы избежать сбоя.Если я уберу вызов ResetEvents из таймера, то приложение будет работать более плавно, потребляя 60-70Mb.Приложение без временной шкалы должно работать на 10-20Мб.Там нет графики или что-то, что могло бы использовать больше, чем это.Я думаю, что что-то может быть не так с временной шкалой.
РЕДАКТИРОВАТЬ:
Вот часть кода:
List<TimelineEvent> events = new List<TimelineEvent>();
...
внутренний таймер
TimelineLibrary.TimelineEvent newevent = new TimelineLibrary.TimelineEvent();
...
newevent.StartDate = starttime;
newevent.EndDate = endtime;
newevent.Id = id;
newevent.Title = title;
newevent.Description = description;
newevent.Link = url;
newevent.EventColor = color;
events.Add(newevent);
timeline.ResetEvents(events);
...
Этот код находится внутри таймера.Я просто создаю TimelineEvent, добавляю его в список и вызываю ResetEvents.Удаление последней строки не вызывает проблем с памятью.