powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / В WPF-приложении утекает память
9 сообщений из 9, страница 1 из 1
В WPF-приложении утекает память
    #39236464
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот из-за этой функции:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    Public Shared Function Serialize(Of T)(value As T, Optional emptyNs As Boolean = False) As String
        If value.Equals(Nothing) Then Return Nothing
        Dim xmlNamespaces As XmlSerializerNamespaces
        If Not emptyNs Then
            xmlNamespaces = New XmlSerializerNamespaces()
            xmlNamespaces.Add("x", "http://www.w3.org/2001/XMLSchema-instance")
        Else
            xmlNamespaces = New XmlSerializerNamespaces({XmlQualifiedName.Empty})
        End If

        Dim serializer = XmlSerializer.FromTypes({GetType(T)})(0)
        Dim settings = New XmlWriterSettings() With {.Encoding = New UnicodeEncoding(False, False), .Indent = True, .IndentChars = vbTab, .NewLineChars = vbCrLf, .OmitXmlDeclaration = emptyNs}
        Using textWriter = New StringWriterUtf8()
            Using xmlWriter__1 = XmlWriter.Create(textWriter, settings)
                serializer.Serialize(xmlWriter__1, value, xmlNamespaces)
            End Using
            serializer = Nothing
            xmlNamespaces = Nothing
            settings = Nothing
            Return textWriter.ToString()
        End Using
    End Function

И GC.Collect не помогает. Что тут не так?
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236545
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может потому что Return находится внутри Using и Dispose не выполняется?
(не проверял, просто предположение)
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236574
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProМожет потому что Return находится внутри Using и Dispose не выполняется?
(не проверял, просто предположение)Вообще-то Dispose должно выполняться при любом виде выхода из Using.

Clr profiler показывает, что память забита экземплярами System.Type и Object. Выходит, что это XmlSerializer память чистить не умеет?
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236585
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того, я закомментировал весь код главного окна, запустил и закрыл прогу, и получил такую статистику:

Handles created: 686
Handles destroyes: 16
Handles survived: 670

какой-то треш с памятью под дотнетом творится.
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236586
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XmlSerializer — Assembly Leak без спроса

зы: лично не проверял.
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236601
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да. Тут о том же пишут. Полезная инфа, надо запомнить.
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236645
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К XmlSerializer — Assembly Leak без спроса

зы: лично не проверял.Ок, тут утечка исчезла.

Почти.

За несколько циклов по 10000 итераций утекло несколько мегабайт памяти (до этого текла десятками при цикле в 1000 итераций).
Но при этом независимо от количества циклов Clr profiler показывает одно и то же количество созданных/уничтоженных хендлов.
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236648
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И одинаковый объем использованной памяти сразу после старта и после циклов. Но диспетчер задач с ним не согласен.
...
Рейтинг: 0 / 0
В WPF-приложении утекает память
    #39236653
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyБолее того, я закомментировал весь код главного окна, запустил и закрыл прогу, и получил такую статистику:

Handles created: 686
Handles destroyes: 16
Handles survived: 670

какой-то треш с памятью под дотнетом творится.Тут задача прибивалась кнопкой kill в clr profiler, но даже при закрытии из самой программы с подчисткой всего что можно выходит 4208/3635
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / В WPF-приложении утекает память
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]