powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поедание памяти процессом.
25 сообщений из 60, страница 2 из 3
Поедание памяти процессом.
    #38909119
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

никогда не говори никогда
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38909125
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилМСУ, никогда не говори никогда
На своей памяти помню только одно применение с подзним связыванием на офисном интеропе (которому место на помойке), ну ты понял, о чем я :) Больше в жизни не встречал ситуации, когда нужно это явно делать.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910086
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСамое ценное в статье Ковача - это заключение.

https://msdn.microsoft.com/ru-ru/magazine/cc163491.aspx Заключение: В настоящей статье рассматриваются различные проблемы, которые возникают в приложениях .NET и могут стать причиной утечек памяти или чрезмерного потребления памяти. Конечно, .NET в большой мере избавляет от забот о памяти, но чтобы быть уверенными, что приложение работает правильно и эффективно, нужно внимательно следить за тем, как оно использует память. Тот факт, что приложение является управляемым, не означает, что нужно выбросить и забыть профессиональные навыки и накопленный опыт разработки и отладки программных систем, полностью положиться на сборщик мусора и ждать, что он сотворит чудеса . Разрабатывая и отлаживая приложение, нужно постоянно следить за значениями счетчиков, которые характеризуют эффективность использования памяти.


Так что, a_voronin, самое время для изучения .NET :)

Боюсь, что на .NET я программировал уже слишком долго с первой версии ещё. GC.Collect использовал в боевом коде, использовал не раз, знаю результат. То, что кто-то написал, что сборщик мусора не надо вызывать, это его личное мнение, которое я лично проигнорирую.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910091
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninБоюсь, что на .NET я программировал уже слишком долго с первой версии ещё. GC.Collect использовал в боевом коде, использовал не раз, знаю результат. То, что кто-то написал, что сборщик мусора не надо вызывать, это его личное мнение, которое я лично проигнорирую.
Боюсь, что ты просто облажался и тебе откровенно стыдно это признать. Остальные сопли по поводу твоего "долголетнего опыта" оставлю без комментариев.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910162
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУa_voroninБоюсь, что на .NET я программировал уже слишком долго с первой версии ещё. GC.Collect использовал в боевом коде, использовал не раз, знаю результат. То, что кто-то написал, что сборщик мусора не надо вызывать, это его личное мнение, которое я лично проигнорирую.
Боюсь, что ты просто облажался и тебе откровенно стыдно это признать. Остальные сопли по поводу твоего "долголетнего опыта" оставлю без комментариев.

Боюсь, что я написал хороший качественный код, который уже 8 лет используется на американском сайте международного уровня с высоким доступом и он бы до сих пор валился без GC.Collect. А ты можешь дальше носиться с идеей о том, что сборку мусора принудительно вызывать не надо. До свиданья. Я таких как ты на собеседованиях сразу заворачиваю.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910192
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninБоюсь, что я написал хороший качественный код, который уже 8 лет используется на американском сайте международного уровня с высоким доступом и он бы до сих пор валился без GC.Collect.
Я не могу судить о качестве твоего кода, который уже 8 лет используется на американском сайте международного уровня с высоким доступом. Потому что у меня нет этого кода. Но я могу судить о твоих знаниях, особенно когда вижу удивление о том, что в .NET якобы не могут быть утечек. Твой перформанс про

a_voroninУтечку на .NET? Вы батенька что-то попутали. Это не C++

вообще заслуживает отдельного респекта. С такими ляпами тебе не то, что качественный код для пиндосов писать, тебе даже в цирке места не найдется.

Поэтому, прежде чем ляпнуть какую-то глупость, подумай. Это так, на будущее дружеский совет.

a_voroninА ты можешь дальше носиться с идеей о том, что сборку мусора принудительно вызывать не надо. До свиданья. Я таких как ты на собеседованиях сразу заворачиваю.
Я носиться никуда не буду. Я буду помнить о том, что не перевелись еще неофиты, которые думают, что в .NET утечек не бывает.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910200
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninЯ таких как ты на собеседованиях сразу заворачиваю.
Мне страшного представить проф пригодность компании, где человека с нулевыми знаниями по .NET допустили собеседовать разработчиков. Заверни лучше голову свою в ковёр, клоун
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910276
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУчто в .NET якобы не могут быть утечек. Твой перформанс про

a_voroninУтечку на .NET? Вы батенька что-то попутали. Это не C++

вообще заслуживает отдельного респекта. С такими ляпами тебе не то, что качественный код для пиндосов писать, тебе даже в цирке места не найдется.

Это оскорбление. С хамом больше общаться не буду.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910286
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninЭто оскорбление. С хамом больше общаться не буду.
Ты лучше бы не строил из себя девственницу, а честно признал, что был не прав. Профессионалы тоже иногда ошибаются, ничего тут страшного нет. Но ты продолжаешь включать дурака и лить крокодильи слёзы. Будь мужиком уже, в самом-то деле.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910289
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУa_voroninЯ таких как ты на собеседованиях сразу заворачиваю.
Мне страшного представить проф пригодность компании, где человека с нулевыми знаниями по .NET допустили собеседовать разработчиков. Заверни лучше голову свою в ковёр, клоун

Сначала ты придумал, что я что-то имел ввиду, потом сделал какие-то выводу о моём уровне, на основе того, что сам сообразил, теперь на основе этой своей выдумки хамишь. до свиданье господин воображалкин.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910294
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninСначала ты придумал, что я что-то имел ввиду, потом сделал какие-то выводу о моём уровне, на основе того, что сам сообразил, теперь на основе этой своей выдумки хамишь. до свиданье господин воображалкин.
Я придумал, что в .NET не бывает утечек? Я придумал, что .NET это не C++? Я начал хамски поучать перечитать, как работает распределение памяти в .NET? Я тебе дал ссылку и аргументировал твою неправоту. О каких выдумках ты тут вещаешь?
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910309
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУa_voroninСначала ты придумал, что я что-то имел ввиду, потом сделал какие-то выводу о моём уровне, на основе того, что сам сообразил, теперь на основе этой своей выдумки хамишь. до свиданье господин воображалкин.
Я придумал, что в .NET не бывает утечек? Я придумал, что .NET это не C++? Я начал хамски поучать перечитать, как работает распределение памяти в .NET? Я тебе дал ссылку и аргументировал твою неправоту. О каких выдумках ты тут вещаешь?

Ну то, что распределение памяти на C++ и NET отличается ты, я надеюсь, отрицать не будешь. То, что память не подлежит сборке на .NET, пока на неё есть ссылка, ты тоже отрицать не будешь. То, что в MSDN есть пример использования GC.Collect ты тоже отрицать не будешь? https://msdn.microsoft.com/en-us/library/xe0c2357(v=vs.110).aspx

Теперь скажи мне, уважаемый разработчик, архитектор или кто ты. Вот ты лопатишь какие-то данные в цикле. Лопатишь долго. Читаешь файл, например, делаешь кучу операций со строками и записываешь в другой файл. Что будет происходить с памятью. Вот пройдёт 100000 витков этого цикла, а память накапливается. Тебе уже не нужны все эти строки и промежуточные значения, ты их записал в выходной файл. Но они висят в памяти. Как действовать? Какой тут сценарий без GC.Collect -- я внимательно послушаю?
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910319
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninНу то, что распределение памяти на C++ и NET отличается ты, я надеюсь, отрицать не будешь. То, что память не подлежит сборке на .NET, пока на неё есть ссылка, ты тоже отрицать не будешь. То, что в MSDN есть пример использования GC.Collect ты тоже отрицать не будешь? https://msdn.microsoft.com/en-us/library/xe0c2357(v=vs.110).aspx
Речь не в отличиях распределения памяти. Есть такое понятие, как очистка неуправляемых ресурсов. Используй безопасный дескриптор в качестве оболочки для неуправляемого ресурса. Это рекомендуемая методика. Безопасные дескрипторы это наследники SafeHandle. GC.Collect не панацея, тебе выше уже сказали. Никто никаких гарантий не даст в управлении черным ящиком. Почему это так, я тебе дал ссылку на рецепт с подробным описанием.

a_voroninТеперь скажи мне, уважаемый разработчик, архитектор или кто ты. Вот ты лопатишь какие-то данные в цикле. Лопатишь долго. Читаешь файл, например, делаешь кучу операций со строками и записываешь в другой файл. Что будет происходить с памятью. Вот пройдёт 100000 витков этого цикла, а память накапливается. Тебе уже не нужны все эти строки и промежуточные значения, ты их записал в выходной файл. Но они висят в памяти. Как действовать? Какой тут сценарий без GC.Collect -- я внимательно послушаю?
Во-первых, откуда в цикле взялось накапливание? Ведь я могу читать ридером прямо из источника (соединение с БД, xml, http, порты, сокеты и так далее) мимо памяти. И сразу же свопить куда-то в базу. В результате, никакого оверхеда в виде накапливания. Память не засирается, процесс происходит чисто и без шума. Какой нахрен GC.Collect? С твоими архитектурами только кур смешить. И да, почитай, что такое no tracking фетч. Поможет.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910321
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мнение, которое я лично поддерживаю.

http://stackoverflow.com/questions/233596/best-practice-for-forcing-garbage-collection-in-c-sharp

The best practise is to not force a garbage collection in most cases. (Every system I have worked on that had forced garbage collections, had underlining problems that if solved would have removed the need to forced the garbage collection, and speeded the system up greatly.)

There are a few cases when you know more about memory usage then the garbage collector does. This is unlikely to be true in a multi user application, or a service that is responding to more then one request at a time.

However in some batch type processing you do know more then the GC. E.g. consider an application that.

Is given a list of file names on the command line
Processes a single file then write the result out to a results file.
While processing the file, creates a lot of interlinked objects that can not be collected until the processing of the file have complete (e.g. a parse tree)
Does not keep match state between the files it has processed.
You may be able to make a case (after careful) testing that you should force a full garbage collection after you have process each file.

Another cases is a service that wakes up every few minutes to process some items, and does not keep any state while it’s asleep. Then forcing a full collection just before going to sleep may be worthwhile.

The only time I would consider forcing a collection is when I know that a lot of object had been created recently and very few objects are currently referenced.
I would rather have a garbage collection API when I could give it hints about this type of thing without having to force a GC my self.

See also "Rico Mariani's Performance Tidbits"
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910376
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВо-первых, откуда в цикле взялось накапливание? Ведь я могу читать ридером прямо из источника (соединение с БД, xml, http, порты, сокеты и так далее) мимо памяти. И сразу же свопить куда-то в базу. В результате, никакого оверхеда в виде накапливания. Память не засирается, процесс происходит чисто и без шума. Какой нахрен GC.Collect? С твоими архитектурами только кур смешить. И да, почитай, что такое no tracking фетч. Поможет.

Опять на личности переходишь и опять придумываешь то, чего нет.

Рассмотрим задачу, где данные не сохраняются как есть. Понятно, что из одного потока в другой направить, это не вопрос. Допустим надо не как есть сохранять, а что-то делать ещё с теми данными, которые иду по потоку. Считать, трансформировать. Но не накапливать.

Ситуация заключалась в том, что память приращивалась и приращивалась, хотя указатели на эти промежуточные объекты уже были сняты. Может быть сейчас .NET оптимизировали, но некоторое число лет назад это наблюдалось. Поэтому и требовался принудительный GC.Collect. Никакого проседания производительности, как многое кричат, не было. Но сборка мусора длилась до полсекунды. На фоне многоминутных обработок, это было ничто. И память освобождалась. То есть ситуация, когда неиспользуемые объекты зависали была и и без GC.Collect не освобождалась. Дело было ещё по IIS и на фоне другой нагрузки.

Вот и всё, что я хотел сказать.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910394
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Беспредметный спор. Использовать или нет деструкторы в классе зависит от задачи. Случается, но не так часто. Кода a_voronin'a мы не видели, так что... Но да, принудительная сборка мусора - скорее исключение чем правило.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910417
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninОпять на личности переходишь и опять придумываешь то, чего нет.
Что именно я придумываю? Ты сгенерил какой-то упоротый пример для ламеров и предлагаешь его по-ламерски решать. Ты из какого курятника вылез, начальник?

a_voroninРассмотрим задачу, где данные не сохраняются как есть. Понятно, что из одного потока в другой направить, это не вопрос. Допустим надо не как есть сохранять, а что-то делать ещё с теми данными, которые иду по потоку. Считать, трансформировать. Но не накапливать.
Ну считывай последовательно и трансформируй. Курсоры могут не только однонаправленные, если что. Память засирать вовсе не обязательно. А ты предлагаешь засрать всю память, а потом сделать чудо с помощью GC.Collect и радоваться? Уверяю, это удел кодирующих обезьян (code monkey), а не профессионала. Десятый раз повторяю, GC.Collect в 99.9% прикладных задач не нужен. Вообще не нужен.

a_voroninМожет быть сейчас .NET оптимизировали, но некоторое число лет назад это наблюдалось. Поэтому и требовался принудительный GC.Collect.
Никогда он не требовался, не фантазируй. Грамотный код и корректные алгоритмы всегда справлялись без этого magic подхода.

a_voroninВот и всё, что я хотел сказать.
Ты научись сначала с дотнетом работать прямыми руками, а там, глядишь, и GC.Collect не понадобится. Вообще не понадобится.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910645
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronБеспредметный спор.Полезный комментарий, спасибо.
А то уже собирался читать топик :)
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910743
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA Полезный комментарий, спасибо.
А то уже собирался читать топик :)
Тот редкий случай, когда МСУ полностью прав. Видимо затмение сказывается :)
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910794
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВТот редкий случай, когда МСУ полностью прав. Видимо затмение сказывается :)
А судьи-то кто? Школота и обезьянки? Спасибо, повеселил
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910890
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА судьи-то кто?
Экс-глава Минсельхоза Елена Скрынник.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910916
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЭкс-глава Минсельхоза Елена Скрынник.
Ну хоть не Андрей Киска.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910927
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANA Полезный комментарий, спасибо.
А то уже собирался читать топик :)
Тот редкий случай, когда МСУ полностью прав. Видимо затмение сказывается :)

Прибежали поддакиватели. Для начала надо не быть столь откровенным хамом. Такой человек может и знает многое, но в коллективе он опасен, поскольку от его демонстрации превосходства начнут уходить те, кто делает работу, а будет ли он делать работу еще большой вопрос.

И я не надо быть столь наивным, чтобы считать, что он всегда прав. Вот это тоже считаете бредом, например? 9372672
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38910995
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninДля начала надо не быть столь откровенным хамом.
Это ты про свой ответ 17402256 на счет того, что я попутал и что мне надо перечитать, как работает распределение памяти? Забавно.

a_voroninТакой человек может и знает многое, но в коллективе он опасен, поскольку от его демонстрации превосходства начнут уходить те, кто делает работу, а будет ли он делать работу еще большой вопрос.
Тебя понесло не в ту степь, начальник. Какое превосходство, какой коллектив? Если ты не умеешь общаться с людьми, не надо переваливать с больной головы на здоровую. Если бы ты уважительно задал вопрос, а не стал выё..ться, я бы тебе уважительно ответил, как нормальному мужику. А когда ты по-хамски начал ерничать, а потом женские обиды кидать, а потом еще и идиотские кейсы приводить с переполнением памяти в цикле, так это вообще цирк. Вместо того, чтобы остановиться и осознать свою ошибку, ты начал дальше и глубже себя закапывать в яму. И где тут моя вина, начальничек?

a_voroninИ я не надо быть столь наивным, чтобы считать, что он всегда прав. Вот это тоже считаете бредом, например? 9372672
Давай по теме, начальник. Прав или не прав, какая разница. Будь проще.
...
Рейтинг: 0 / 0
Поедание памяти процессом.
    #38911008
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДавай по теме, начальник. Прав или не прав, какая разница. Будь проще.

Да я-то попроще.
Поражает твоя мания "читать между строк", то есть вкладывать в слова смысл, которого в них нет. Вот интересно, где я сказал, что являюсь или был начальником?
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поедание памяти процессом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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