|
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92
|
||||||||||||
Что считать утечкой памяти?20.06.2015, 16:05. Показов 3502. Ответов 65
Метки нет (Все метки)
0
|
||||||||||||
| 20.06.2015, 16:05 | |
|
Ответы с готовыми решениями:
65
Как бороться с утечкой памяти?
Как справиться с утечкой памяти в коде? |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||
| 21.06.2015, 22:46 | ||||
|
В том числе тот, кто код смотрит, если явно в комментарии не будет указано. Об этом я и талдычу всю тему. Важность не важна (о, как), важен сам факт.
0
|
||||
| 21.06.2015, 22:46 | |
|
0
|
|
| 21.06.2015, 23:06 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 21.06.2015, 23:11 | |||
|
код пишет программист. простой пример: профайлеры любят агриццо на статические сингелтоны. и чо? у нас тут утечка, только потому что так сказал профайлер? или другой пример: кастомный пул захапал сразу немерянно. тобишь, есть свой аллокатор и все такое. алгоритмически - были утечки, пул надрывался, пытаясь запросить дополнительную память. но профайлеры ничего не заметили, потому что они не умеют пул. с их точки зрения все хорошо: пул взял, пул вернул. а то что он был забит дохляками через new placement ... я вам ещё раз делаю замечание: вы придираетесь к форме, не учитывая содержание. это точно такое же передергивание, как у того товарища, который предложил перезапускать сервис каждые два часа. чем чреваты утечки ресурсов? (даже не памяти, а вообще ресурсов). приложение жрет неимоверно, и работает не стабильно. и само может крякнуть, и систему нагнуть. вот если оно зажирает стабильно и ожидаемо, работает тоже стабильно, не крякает, и системе стрессов не устраивает - какие проблемы тогда?
0
|
|||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 21.06.2015, 23:37 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||
| 21.06.2015, 23:56 | |||||||||
|
на то оно и здравый смысл:
придожение работает стабильно. и жрет тоже стабильно и ожидаемо. а лишь одно из. не нужно выдавать мнение одного человека, за мнение всех. источник ни разу не авторитетный. во-вторых, в статье есть мысли, смысл которых ну очень похожи на то, что я называю "здравым смыслом". я бы не сказал, что статья противоречит тому, что я здесь писал. Добавлено через 2 минуты впрочем, последний абзац особенно доставляет, как в общем то и вся статья.
0
|
|||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||
| 22.06.2015, 00:13 | ||||
Всяко поавторитетнее слов некоторых других А может еще заглянем сюда? https://msdn.microsoft.com/en-... 59408.aspx
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||
| 22.06.2015, 00:30 | ||||||||||||||
|
можно ещё отсюда: https://ru.wikipedia.org/wiki/... 1%82%D0%B8 и это тоже никак не противоречит моим тезисам. представьте себе. оно включает в себя "мы контролируем ресурсы". я вас сейчас носом ткну: смотрите:
да ничего не изменилось. смысл в обоих случаях один и тот же. только в первом случае г_о_в_н_о_к_о_д с одной избыточной строкой. а во втором - с двумя избыточными строчками. это не утечки, это просто тупорылый код. и не нужно заниматься буквоедством : бездумно следовать каким то определениям. нужно башку тоже иногда включать. потому что любые такие определения не более, чем формальность. и как у любой модели, и них есть свои границы применимости. выше я приводил пример с статическими сингелтонами и кастомным пулом памяти. где лососнут тунца например, 2 и 3 определение, если вы не научитесь включать голову.
0
|
||||||||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||
| 22.06.2015, 01:06 | |||||
0
|
|||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
|||||||
| 22.06.2015, 01:14 | |||||||
мне вот что вспомнилось: задокументированный "баг", это не "баг", это "фича"
1
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 22.06.2015, 01:35 | |||||||
|
статический сингелтон. он переживает main. и может держать данные в куче. поэтому, на него и агряццо различные профайлеры. я вам ещё раз повторяю: включайте мозг, и прекращайте бездумно следовать за определениями. у них у всех есть свои границы применимости. и разделяю зерна от плевел. а вы даже и не пытаетесь. я смотрю, вы мне даже возразить по существу никак не можете. я вам привел два варианта кода. у которых одинаковый смысл. и практически одинаковое поведение. и вы мне сейчас не сможете объяснить разницы. вы мне кидаете какие то определения, навроде этого:
что запахал по окончанию работы, значит утечек не было? и не беда, что он сожрал 3 гигабайта, вместо 30 мегабайт. и ещё поработал бы чутка - упал бы от нехватки памяти на 32 битной оси. а ответ очень простой: вы не дружите со здравым смыслом. ведетесь на формальности, но голову при этом не включаете. Добавлено через 1 минуту здесь по прежнему имеет место быть избыточной аллокации. но теперь она уже не контролируется. это - утечка.
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||||
| 22.06.2015, 13:12 | ||||||||||
0
|
||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 22.06.2015, 14:38 | ||||||||||
хз, кем нужно быть, что бы не понимать этого. все эти формальные определения мне хорошо известны. просто я различаю зерна и плевлы. в отличие от вас. вот вам не очевидно, что утечка со стандартным аллокатором, и утечка с любым другим кастомным аллокатором - суть та же самая утечка. я вам могу шаблонофункцию нарисовать. подсовывайте туда любой stl-compatible allocator. и чо, у вас в случае с std::allocator это типа утечка, а в случае с custom::allocator - это типа ошипко в программко, так что ли? что за маразм? данный код - студийный. точка. о контроле средствами языка речи не шло. контроль осуществляется средствами виндовс. точка. от того, что это - непереносимый говнокод, не следует, что в нем утечка. что не понятно?
0
|
||||||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||||||||||||
| 22.06.2015, 15:14 | |||||||||||||||||
0
|
|||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||
| 22.06.2015, 17:36 | ||||||||||
|
другое дело, что в приведенном вами коде нечего диагностировать. у вас там никаких ресурсов не захватывается.
грубо говоря, это сингелтон (не обязательно). который при старте хапает сразу большой кусок памяти. в дальнейшем, приложение просит память уже у него, а не у системы. в конце работы пул возвращает всю память системе. ну вот, формально приложение само за собой все зачистило. пул же корректно отдал все, что запрашивал. и профайлеры молчат. а то, что пул надрывался, и был забит дохляками - это извиняйте. которые не понимают, что такое утечка памяти, и аппелируют к определениям, смысла которых они так же не понимают. и нельзя сказать, что "утечки будут". по моей логике можно сказать: "теоретически могут быть на какой нибудь конкретной микроволноффке, которая не чистит за приложением". и согласно таким требованиям, код придется переписать. и начинать нужно будет с функции main, потому что данный код - майкрософт-специфик. (хотя его итак нужно переписать).
0
|
||||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||||||
| 22.06.2015, 17:45 | ||||||
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||
| 22.06.2015, 17:50 | ||||||||
|
наконец то вы начали думать. итак, конструкция вида:
маразм крепчал. и вернуло всю эту память когда завершалось. согласно данному определению утечки нет.
0
|
||||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 22.06.2015, 18:18 | |||
Приложение динамически выделяет память в пуле под объекты, потом ее не освобождает, когда они становятся не нужны, - значит утечка.
0
|
|||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 22.06.2015, 18:48 | |
|
Я бы сказал, что вам не хватает определения границ, за которыми заканчивается "чёрный ящик", без этих границ сложно говорить о каких-либо требуемых ресурсах. Если какая-то функция занимает память, то это может вызвать утечку. Однако в паре с функцией, которая память освобождает, чёрный ящик уже безопасен.
А если чёрный ящик определён, то можно сконструировать операционное определение утечки, например, через программу, которая перечисляет натуральные числа и на каждом шаге обращается к чёрному ящику.
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 22.06.2015, 18:48 | ||
|
Тоже самое, что запустить код с утечками в виртуальной машине, и можно говорить, что утечек как бы нет (говоря уже про реальную машину, но не упоминая этого явно). Но дело в том, что выделение ресурса и диагностику его утечек следует проводить на том же самом уровне, а не в разных. Вот hoggy делает это в разных, и думает, что прав, но увы.
0
|
||
| 22.06.2015, 18:48 | |
|
Является ли данный случай утечкой памяти? Когда исправят баг с утечкой памяти в Rhythmbox?
Как бороться с утечкой памяти в приложении при его длительной работе Считать изображения из памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|