V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ionblue
V2EX  ›  程序员

哪种语言内存泄漏最厉害?

  •  
  •   ionblue ·
    uselibrary · 2018-07-04 21:28:59 +08:00 · 5913 次点击
    这是一个创建于 2114 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 泄漏的概率(涉及到编写者的水平等)
    2. 泄漏的补救难易程度
    3. 泄漏后的危害(对程序 /对系统)
    4. 哪类程序最容易发生内存泄漏
    5. 补充...
    27 条回复    2018-07-05 15:51:12 +08:00
    Cambrian07
        1
    Cambrian07  
       2018-07-04 21:46:55 +08:00 via Android
    C++毫无疑问了
    prolic
        2
    prolic  
       2018-07-04 21:50:34 +08:00 via Android
    c++11 以前的 c++
    wevsty
        3
    wevsty  
       2018-07-04 22:09:26 +08:00
    明显 C
    C++虽然内存方面还是太弱但是还是比 C 方便一些的。
    metrxqin
        4
    metrxqin  
       2018-07-04 22:10:24 +08:00 via iPhone
    ??? 这问题问得真够奇怪。
    snnn
        5
    snnn  
       2018-07-05 04:49:04 +08:00
    Js ?不靠谱的程序员太多
    smdbh
        6
    smdbh  
       2018-07-05 07:47:23 +08:00
    不分配会泄露么?理论上都是人的问题
    missdeer
        7
    missdeer  
       2018-07-05 08:39:13 +08:00
    必须 C/C++了吧
    zynlp
        8
    zynlp  
       2018-07-05 08:52:28 +08:00 via iPhone
    reus
        9
    reus  
       2018-07-05 08:52:54 +08:00
    等于问“那种语言出 bug 最厉害”
    你来答一个试试?
    GUS777
        10
    GUS777  
       2018-07-05 09:29:04 +08:00
    没有比 C 更暴露的了。
    grewer
        11
    grewer  
       2018-07-05 10:04:43 +08:00
    最原生的永远是最考验水平的
    glacer
        13
    glacer  
       2018-07-05 10:33:40 +08:00
    @zynlp 这个不符合内存泄露的定义,暴增的 list 对象始终是有被引用的,这放任何一种语言不断地填一个数组都会把内存撑爆啊。
    abmin521
        14
    abmin521  
       2018-07-05 10:49:17 +08:00 via Android
    反过来问 哪种语言没有内存泄漏
    balamiao
        15
    balamiao  
       2018-07-05 11:04:39 +08:00
    看你怎么用了~
    ioth
        16
    ioth  
       2018-07-05 11:30:45 +08:00
    你不怪操作系统,反而来说语言?语言,pascal 的操作系统 uscd-p 伪码,是最早 ibm-pc 的三种 os 之一;
    操作系统实现语言的编译器,操作系统进程管理。
    21 世纪的程序员都是这种水平?
    现在大学的数据结构课用 java 做例子吗?
    sgissb1
        17
    sgissb1  
       2018-07-05 11:31:50 +08:00
    高级别语言来说 c c++
    低级别语言来说汇编,汇编泄漏起来,你自己都不知道怎么做到泄漏的天衣无缝的。
    GeruzoniAnsasu
        18
    GeruzoniAnsasu  
       2018-07-05 11:48:34 +08:00
    我觉得前提需要补充一下内存泄露的定义

    如果只是单纯的申请内存忘记释放
    那么基本上只有 C/++是手动申请释放没有 GC 的,会泄露


    如果按“运行过程中内存占用会一直上涨无法回收”这个现象来算的话

    chrome 是啥写的?
    JB 全家桶是啥写的?
    VDimos
        19
    VDimos  
       2018-07-05 12:14:01 +08:00 via Android
    c 和 c++,这就是为什么有了 rust
    chanin
        20
    chanin  
       2018-07-05 12:25:41 +08:00
    rust 表示请 C++回答这个问题
    Zzdex
        21
    Zzdex  
       2018-07-05 12:38:18 +08:00 via iPhone
    @zynlp #8 这并不是
    northisland
        22
    northisland  
       2018-07-05 12:53:24 +08:00 via Android
    哈哈
    JasonWang97
        23
    JasonWang97  
       2018-07-05 12:55:55 +08:00
    c++有 RAII 还好,就是解决 c 语言资源释放的问题的,虽然 C++一不小心也会泄露,但比 c 好多了
    wlgq2
        24
    wlgq2  
       2018-07-05 13:09:46 +08:00
    C++比 C 稍好,因为能封装 RAII,至于 C++11,shared 和 weak 还需要程序员手动避免相互引用,还有虚析构问题。
    3dwelcome
        25
    3dwelcome  
       2018-07-05 13:40:11 +08:00 via Android
    用 cpp 的表示,自从有了内存分配计数统计和引用计数,内存再也没怎么泄露过。
    唯一一次有大的资源泄露,也是系统句柄没释放,不是内存调用函数。
    koopking
        26
    koopking  
       2018-07-05 13:53:15 +08:00
    @snnn 哪来的优越感?
    vibbow
        27
    vibbow  
       2018-07-05 15:51:12 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3276 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.