Re[9]: Haters gonna hate but with proofs
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.01.19 13:38
Оценка:
Здравствуйте, Igore, Вы писали:

N>>>>Собственно на этом выезжают managed среды, начиная с BASIC и Java: какой бы говнокод на них не писался и не импортировался, он не доведёт обстановку до совсем нерабочего состояния, если не использовать спец. средства, которые легко детектируются. А в unmanaged — наоборот.

I>>>Ну, как бэ, как человек который искал и устранял утечки памяти в JS и C#, могу сказать что в С++ с этим попроще(именно нахождение),
N>>О каких утечках памяти речь в JS и C#? В managed слое, или в переходном к unmanaged?
I>В кроссылках, когда один объект ссылается на другой, и при удалении GC это оставляет жить, в итоге ПО съедало всю память и падало.

Звучит как тяжёлая недоработка конкретных рантаймов.
Потому что если он упирается в жёсткий предел памяти, он обязан вызвать полный GC. Но желательно делать инкрементальный и раньше.
Мне в этом смысле особенно нравится, как сделано в Lua. По умолчанию — превысили двойной размер после прошлой сборки — запускаем новую. Тяжёлого разрастания без причин там в итоге не бывает, есть чёткое представление, на сколько делать запас.
В ранних Java, да, было с этим хуже, там обычно пока операционка не скажет "фиг тебе, а не страничка", не собиралось. Но и то исправили достаточно давно.

Я вначале подумал, что вы про случай, когда на какое-то уже ненужное дерево объектов висит забытая ссылка из одного из тех, что должны сейчас жить. Такие вещи, да, диагностируются тяжело, если нет возможности у системы спросить и проитерировать множество вообще всех объектов.
Не знаю про типовые реализации JS, но в дотнете, вроде бы, такое есть везде?

I>>> хотя и опыта в С++ у меня намного больше, а последнии годы я вообще не сталкивался с такой проблемой как утечка памяти в С++.

N>>Вам, наверно, везёт, что не приходится использовать посторонние библиотеки?
I>Вот перечень стороних:
I>rapidjson, boost, qt5, xerces, xalan, xsec, sqlite, odb, openssl, curl, protobuf, ncreport, zlib, soci, librsync

Полный список не знаю, и не могу сказать, кто из них на самом деле покемон, но в пределах моих знаний тут нет проприетарных либ всяких тематических коннекторов, в которых больше всего подобных граблей (на OCI, кажется, только ленивый не ругался).
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.