看帖神器
未名空间
追帖动态
头条新闻
每日新帖
最新热帖
新闻存档
热帖存档
文学城
虎扑论坛
未名空间
北美华人网
北美微论坛
看帖神器
登录
← 下载
《看帖神器》官方
iOS App
,体验轻松追帖。
大型C++和Java系統的一個通病就是漏內存
查看未名空间今日新帖
最新回复:2021年2月19日 7点30分 PT
共 (9) 楼
返回列表
订阅追帖
只看未读
更多选项
阅读全帖
只看图片
只看视频
查看原帖
n
netghost
3 年多
楼主 (未名空间)
我幾乎很少看到過規模達到一定程度的C++和Java跑很長時間之後不漏內存的。
這就是爲啥C++最流行的地方是寫桌面程序,速度響應不錯。實在漏得太多不行了可以
關了重來,比如說瀏覽器,office,圖片編輯軟件,各種視頻播放。當然還有例子就是編譯器,反正內存基本上是從來不釋放的,編譯完了完事。
Java因爲反映慢所以最早其實是想搞前端的,比如說desktop和網頁applet,但是因爲
效率響應實在是太差,所以很多年過去之後就慢慢沒了。不過Java去搞服務器市場,因爲反正不用考慮內存管理所以程序員好招結果活下來了。但是也就是因爲這個特點,
Java的內存控制就更難搞一些,內存漏沒漏都說不清楚,此外習慣寫GC的人因爲沒有回收內存的概念,常常喜歡漏句柄。所以java的服務器程序,一般需要一堆的監控,看着不對就重啓。當然這也是另外一生態系統。
g
guvest
3 年多
2 楼
Golang一样也会漏内存。还挺难查。
【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: 我幾乎很少看到過規模達到一定程度的C++和Java跑很長時間之後不漏內存的。
: 這就是爲啥C++最流行的地方是寫桌面程序,速度響應不錯。實在漏得太多不行了可以
: 關了重來,比如說瀏覽器,office,圖片編輯軟件,各種視頻播放。當然還有例子就是
: 編譯器,反正內存基本上是從來不釋放的,編譯完了完事。
: Java因爲反映慢所以最早其實是想搞前端的,比如說desktop和網頁applet,但是因爲
: 效率響應實在是太差,所以很多年過去之後就慢慢沒了。不過Java去搞服務器市場,因
: 爲反正不用考慮內存管理所以程序員好招結果活下來了。但是也就是因爲這個特點,: Java的內存控制就更難搞一些,內存漏沒漏都說不清楚,此外習慣寫GC的人因爲沒有回
: 收內存的概念,常常喜歡漏句柄。所以java的服務器程序,一般需要一堆的監控,看着
: 不對就重啓。當然這也是另外一生態系統。
n
netghost
3 年多
3 楼
對的,沒提go是因爲it還不夠主流。那個東西除了有GC,而且因爲成天讓小白隨便
launch goroutine做並行,更是可以漏得沒邊了。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: Golang一样也会漏内存。还挺难查。
m
minquan
3 年多
4 楼
这么夸张呢?
有GC还漏?
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: Golang一样也会漏内存。还挺难查。
g
guvest
3 年多
5 楼
https://go101.org/article/memory-leaking.html
https://stackify.com/memory-leaks-java/
https://www.fugue.co/blog/diagnosing-and-fixing-memory-leaks-in-python.html
随便找找,到处都是文章和github issues。
有gc的语言,我感觉其严格性其实都是很难理解的。
要写好有质量的,且包含复杂逻辑的代码,更不容易。
另外gc是提高内存管理的。不能看作有gc,所以内存问题就没了。
不存在universal memory leak 检查器,其是图灵停机
问题。
【 在 minquan (三民主义) 的大作中提到: 】
: 这么夸张呢?
: 有GC还漏?
m
minquan
3 年多
6 楼
好的,谢谢。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: https://go101.org/article/memory-leaking.html
: https://stackify.com/memory-leaks-java/
: https://www.fugue.co/blog/diagnosing-and-fixing-memory-leaks-in-python.
html
: 随便找找,到处都是文章和github issues。
: 有gc的语言,我感觉其严格性其实都是很难理解的。
: 要写好有质量的,且包含复杂逻辑的代码,更不容易。
: 另外gc是提高内存管理的。不能看作有gc,所以内存问题就没了。
: 不存在universal memory leak 检查器,其是图灵停机
: 问题。
g
gogogo2
3 年多
7 楼
现在写代码趋势是短平快,都内嵌函数block,没人关心内存问题,
i
iDemocracy
3 年多
8 楼
大型软件一般是大型团队在做,人多了必有江湖,C的指针问题就成了有意无意的杀器
。如果是做自己的系统,必然处处提防内存泄漏。但做别人的系统,恐怕就没那么上心了,甚至个别人故意放几个漏洞进去。
虽然这不完全是语言的问题,但C++20已经号称废除指针了。
n
netghost
3 年多
9 楼
用技術手段解決人的問題從來沒有work過。C可以有意埋坑,C++更容易,rust和golang一樣容易。
【 在 iDemocracy (DEMO) 的大作中提到: 】
: 大型软件一般是大型团队在做,人多了必有江湖,C的指针问题就成了有意无意的杀器
: 。如果是做自己的系统,必然处处提防内存泄漏。但做别人的系统,恐怕就没那么上心
: 了,甚至个别人故意放几个漏洞进去。
: 虽然这不完全是语言的问题,但C++20已经号称废除指针了。
请输入帖子链接
收藏帖子
我幾乎很少看到過規模達到一定程度的C++和Java跑很長時間之後不漏內存的。
這就是爲啥C++最流行的地方是寫桌面程序,速度響應不錯。實在漏得太多不行了可以
關了重來,比如說瀏覽器,office,圖片編輯軟件,各種視頻播放。當然還有例子就是編譯器,反正內存基本上是從來不釋放的,編譯完了完事。
Java因爲反映慢所以最早其實是想搞前端的,比如說desktop和網頁applet,但是因爲
效率響應實在是太差,所以很多年過去之後就慢慢沒了。不過Java去搞服務器市場,因爲反正不用考慮內存管理所以程序員好招結果活下來了。但是也就是因爲這個特點,
Java的內存控制就更難搞一些,內存漏沒漏都說不清楚,此外習慣寫GC的人因爲沒有回收內存的概念,常常喜歡漏句柄。所以java的服務器程序,一般需要一堆的監控,看着不對就重啓。當然這也是另外一生態系統。
Golang一样也会漏内存。还挺难查。
【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: 我幾乎很少看到過規模達到一定程度的C++和Java跑很長時間之後不漏內存的。
: 這就是爲啥C++最流行的地方是寫桌面程序,速度響應不錯。實在漏得太多不行了可以
: 關了重來,比如說瀏覽器,office,圖片編輯軟件,各種視頻播放。當然還有例子就是
: 編譯器,反正內存基本上是從來不釋放的,編譯完了完事。
: Java因爲反映慢所以最早其實是想搞前端的,比如說desktop和網頁applet,但是因爲
: 效率響應實在是太差,所以很多年過去之後就慢慢沒了。不過Java去搞服務器市場,因
: 爲反正不用考慮內存管理所以程序員好招結果活下來了。但是也就是因爲這個特點,: Java的內存控制就更難搞一些,內存漏沒漏都說不清楚,此外習慣寫GC的人因爲沒有回
: 收內存的概念,常常喜歡漏句柄。所以java的服務器程序,一般需要一堆的監控,看着
: 不對就重啓。當然這也是另外一生態系統。
對的,沒提go是因爲it還不夠主流。那個東西除了有GC,而且因爲成天讓小白隨便
launch goroutine做並行,更是可以漏得沒邊了。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: Golang一样也会漏内存。还挺难查。
这么夸张呢?
有GC还漏?
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: Golang一样也会漏内存。还挺难查。
随便找找,到处都是文章和github issues。
有gc的语言,我感觉其严格性其实都是很难理解的。
要写好有质量的,且包含复杂逻辑的代码,更不容易。
另外gc是提高内存管理的。不能看作有gc,所以内存问题就没了。
不存在universal memory leak 检查器,其是图灵停机
问题。
【 在 minquan (三民主义) 的大作中提到: 】
: 这么夸张呢?
: 有GC还漏?
好的,谢谢。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: https://go101.org/article/memory-leaking.html
: https://stackify.com/memory-leaks-java/
: https://www.fugue.co/blog/diagnosing-and-fixing-memory-leaks-in-python.
html
: 随便找找,到处都是文章和github issues。
: 有gc的语言,我感觉其严格性其实都是很难理解的。
: 要写好有质量的,且包含复杂逻辑的代码,更不容易。
: 另外gc是提高内存管理的。不能看作有gc,所以内存问题就没了。
: 不存在universal memory leak 检查器,其是图灵停机
: 问题。
现在写代码趋势是短平快,都内嵌函数block,没人关心内存问题,
大型软件一般是大型团队在做,人多了必有江湖,C的指针问题就成了有意无意的杀器
。如果是做自己的系统,必然处处提防内存泄漏。但做别人的系统,恐怕就没那么上心了,甚至个别人故意放几个漏洞进去。
虽然这不完全是语言的问题,但C++20已经号称废除指针了。
用技術手段解決人的問題從來沒有work過。C可以有意埋坑,C++更容易,rust和golang一樣容易。
【 在 iDemocracy (DEMO) 的大作中提到: 】
: 大型软件一般是大型团队在做,人多了必有江湖,C的指针问题就成了有意无意的杀器
: 。如果是做自己的系统,必然处处提防内存泄漏。但做别人的系统,恐怕就没那么上心
: 了,甚至个别人故意放几个漏洞进去。
: 虽然这不完全是语言的问题,但C++20已经号称废除指针了。