前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022-11-19-看 Rust

2022-11-19-看 Rust

作者头像
三流编程
发布2022-11-21 09:37:01
1970
发布2022-11-21 09:37:01
举报

继续读《程序员修炼之道》,想既然之前的时间成本已经是汩没,后面就不值得继续读了,所以作罢,不要为读完这种想法去浪费更多的时间。

简单看下 Rust 的文章,将堆栈数据的差别,栈中的值,在编译时要确定所占大小,所以动态大小的内存在堆,因为栈无法确定大小去分配,所以用指针引用到堆,具体运行时动态的在堆内确定大小。栈内生命周期短,用完就没了,所以动态生命周期的内容也要分配在堆,显式的控制释放,不像栈自动就清了。好像是理解加深了。

堆带来的问题,该释放没释放造成泄漏,不该释放而释放了导致栈的指针连接不到,多线程访问同一块数据的同步问题。

说了 Java 的 GC,是定期去寻找所有不被引用的对象去释放,但这时机不确定,在释放时它要停止其他线程,造成 STW(Stop-The-World),所以 Android 手机有时卡顿也有这方面的原因。

而 Swift/OC 是自动引用计数,在函数用到那些对象上主动去维护其引用数目,发现零了就释放,不像 Java 要找个时机统一寻找所有一起去释放,所以不会 STW,iOS 流畅也有这方面的原因。

又长了点知识。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档