Возможная утечка памяти в компоненте диаграммы Silverlight Toolkit - помогите! - PullRequest
3 голосов
/ 01 июля 2010

Справочная информация:

Я использую ноябрьскую версию 2009 года компонентов диаграмм набора инструментов Silverlight в приложении для мониторинга, которое обновляет несколько линейных диаграмм каждые 10 секунд или более.

Каждая диаграмма имеетпривязка к ObservableCollection.DataValuePair - это простой класс, содержащий только два свойства (DateTime и int).При каждом добавлении DataValuePair в коллекцию удаляются элементы, которые прошли определенный момент времени (т. Е. В каждой коллекции всегда <50 объектов DataValuePair). </p>

Проблема:

Памятьпросто продолжает идти вверх и вверх.В WinDbg я вижу, что объекты DataValuePair (даже те, которые были удалены из ObservableCollections) все еще находятся в куче и являются ссылками для некоторых элементов компонента построения диаграмм.

Других ссылок нетк объектам в моем коде приложения, и объекты удаляются из ObservableCollections с помощью .Remove (item).Я предполагаю, что они будут удалены GC.

Может кто-нибудь увидеть, если я где-то ошибаюсь или это проблема с компонентами построения графиков?

Ура!Chris

Ответы [ 2 ]

2 голосов
/ 01 июля 2010

Правильно, я, кажется, исправил это после двух дней попыток!

Кажется, утечка памяти была вызвана стилем на LineDataPoints, который я изменил из этого:

<Style x:Key="SparklineDataPointStyle" TargetType="charting:LineDataPoint">
    <Setter Property="Template" Value="{x:Null}" />
    <Setter Property="Background" Value="LimeGreen" />
</Style>

к этому:

<Style x:Key="SparklineDataPointStyle" TargetType="charting:LineDataPoint">
        <Setter Property="Background" Value="LimeGreen" />
</Style>

То есть, удаление шаблона Setter, который ранее был установлен на ноль.

Я не совсем уверен, почему это так, но я буду исследовать.

1 голос
/ 28 марта 2011

Для изучения ваших проблем с использованием памяти вы можете использовать профилировщик памяти ANTS. Я думаю, что он более полезен, чем WinDbg, он показывает количество экземпляров для каждого типа и показывает некоторые диаграммы отношений между классами. Я имею в виду, как они связаны.

...