Обновление: я, вероятно, путаю проблемы с использованием памяти, когда пользовательский интерфейс использует тот же поток, что и обработка (как указано MusiGenesis ниже). Однако в отношении использования памяти. Я все еще не могу найти специфический синтаксис VB.net, хотя люди указали на некоторые отличные данные .Net и C# ниже (и если бы я был более разбираюсь в этих технологиях, можно было бы адаптироваться для работы с VB.net).Управление памятью VB.NET
Я создаю приложение VB.Net.
- Применение в основном Анализирует данные Файлы расположены на клиентской машине в DataSet/DataTables.
- Затем с помощью DataView, он разрушает DataTables в manageble куски, пишет XML и передает данные XML в WebService.
Общие понятия работают нормально, однако у меня возникают проблемы, когда использование Mem в диспетчере задач продолжает расти, поскольку программа используется для загрузки большего количества файлов.
В случае запуска, перед выполнением чего-либо приложения VB имеют 27 000 K. После того, как файл разобран и даже после того, как я удалю дескриптор файла, а также данные значительно увеличиваются. Я выделяю все в коде, и по-прежнему кажется, что память в Mem Usage остается захваченной. Нет никаких рифм или причин, почему использование Mem Usage растет (например, иногда он может вырасти на 20 мб при чтении файла 7mb, однако в других случаях он не увеличивается вообще при чтении файла 3mb). Иногда он появляется, чтобы освободить некоторую память, когда синтаксический анализ завершен, и в других случаях он просто держится.
Я посмотрел на .Net Memory Profiler и на самом деле не смог сделать из этого головы или хвосты.
Я много читал в Интернете относительно управления памятью на .Net в целом о Dispose и «Nothing» и DataSets и т. Д., Однако, на самом деле ничего не нашел в отношении VB.Net.
Мой генерал Вопрос: Есть ли какие-нибудь хорошие учебники/книги/блоги/и т.д., которые показывают более углубленное учебник по управлению памятью в приложении VB.Net (т.е. как/когда распоряжаться/закрыть, и т.д.) , или у кого-нибудь есть некоторые конкретные советы оттуда.
@Scott, я читаю эти Документы и ценю указатели. Я попытаюсь снова использовать «Использование» (я пробовал это в прошлом). Пожалуйста, ознакомьтесь с моими комментариями ниже в MusiGenesis относительно дальнейшего разъяснения моей проблемы (однако я также обновлю свое оригинальное сообщение, чтобы уточнить) – Brian
@Paul: не зная подробностей о том, что вы делаете в коде, трудно помочь сузить место, где вы могли бы быть сталкиваясь с проблемой. Убедитесь, что вы удаляете какие-либо одноразовые предметы, как только вы закончите с ними. Кроме того, ищите такие вещи, как конкатенация строк внутри петель. Вы не укажете, какую версию .NET Framework вы используете, но если вам нужно 3.0 или более поздней версии, вы можете посмотреть на использование двоичного сериализатора для отправки наборов данных через провод к веб-сервису, если это возможно. –