![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
hug |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Добрый день
Проблема такова: Программа работает с длинными строками. Качает html переводит в строки(stream to string)-> парсит регулярками. Замечена на предмет утечки памяти.(за сутки сьедается 2 гига, но программа в таск менеджере постоянно ест не более 100мб) С помощью профайлера было определено, что наиболее большие затраты памяти как раз на string. Прочитал, что память для string выделяется в куче gc.collect вызывается Вопрос:Может ли проблема быть связана со string Если да, то как ее решить? Чистить строки но как? |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
скорее всего утечка вызвана незакрытыми стримами или WebResponse'ами
вызывай в конце использования в блоке finally Close() или заверни использование в using если не поможет, посмотри, как можно оптимизировать работу с памятью сделай, к примеру, регулярное выражение строковой константой и единственный компилируемый инстанс Regex'а (в конструктор передав RegexOptions.Compiled) без кода сложно что-либо ещё посоветовать |
|||
|
||||
hug |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Большое спасибо за ответ. стримы все закрываю ну возможно только, что не в finally Про регулярку спасибо. Но самое выражение константой наверно не получится. Возможно ли все равно использовать комплируемый инстанс?
|
||||
|
|||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
в таком случае нет смысла компиллировать Regex, раз он используется только один раз
не углублялся в написанное, но
вот это может быть причиной утечки |
|||
|
||||
hug |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
спасибо. понял.
переместил освобождение стримов в finally |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |