V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yhvictor
V2EX  ›  问与答

golang 和 Java 有没有类似 c++的 unique_ptr 的库/实现?

  •  
  •   yhvictor · 2022-08-24 17:52:49 +08:00 · 1292 次点击
    这是一个创建于 826 天前的主题,其中的信息可能已经有所发展或是发生改变。
    rt
    我想着大部分垃圾回收的内容实际上都是 unique_ptr 。
    也就是非常容易进行垃圾回收的部分。
    有没有库做类似的事情?期望节省 gc 时间。
    还是说编译时编译器已经把这事情做了?
    4 条回复    2022-08-24 20:27:39 +08:00
    ysc3839
        1
    ysc3839  
       2022-08-24 19:28:23 +08:00 via Android
    有 GC 的语言无法实现 RAII 吧,因为对象析构时间不确定。一般来说 GC 语言会有相关语法糖来实现类似 RAII 的效果,比如 Java 的 Try with Resources
    lostpg
        2
    lostpg  
       2022-08-24 20:10:20 +08:00
    你的意思是,多数对象的生命周期都非常短,并且有着确切的生命周期,所以希望有个能尽早释放这类资源的 GC 策略或者库?感觉你在说 python 的那套 GC 方案,RC + mark&sweep ,但是这样为 GC 系统引入了更多的复杂度;同时这么做的收益挺低的,逃逸分析就已经能够回收掉一大部分短命的对象了。
    agagega
        3
    agagega  
       2022-08-24 20:18:24 +08:00 via iPhone
    我想过这个问题,答案是引用计数对象可以持有 GC 对象,但 GC 对象不能持有引用计数对象(否则引用计数也没意义了)
    dbskcnc
        4
    dbskcnc  
       2022-08-24 20:27:39 +08:00 via Android
    golang Arenas 正在搞, 1.20 有望能用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.