Rust 1.80添加延迟初始化类型,大幅提升资源管理性能
支付動態 · 2024-07-26

Rust 1.80添加LazyCell和LazyLock延迟初始化类型,还强化模式对比灵活性,并在套件管理器Cargo改进cfg检查,提升整体开发效率和程序品质

Rust 1.80加入了多项提高效率、代码安全性和灵活性的功能更新,标准函数库添加LazyCell和LazyLock延迟初始化类型,并且强化模式(Pattern)比对的灵活性,而Rust套件管理器Cargo现在则会检查所有已知的cfg名称和值,并且侦测错误配置。

Rust新加入的LazyCell和LazyLock类型简化延迟初始化的实作,使得程序在需要时才进行计算和资源分配的代码,变得更加容易编写。延迟初始化操作对于需要按需加载资源的情境特别有用,能够在需要时才分配资源,这将可大幅提高大型应用的启动速度和运行效率,从资源管理的角度来说,对于需要大量内存或是其他系统资源的对象,可以更有效地管理资源,有助于减少程序整体内存使用量。

官方现在直接在标准函数库中加入LazyCell和LazyLock,让实作延迟初始化功能更简单,消除需要的样板代码,同时也降低了对外部相依项目的依赖,简化项目管理工作。

LazyLock与LazyCell的差异在于,LazyLock为线程安全,相较于LazyCell只适用於单线程环境,LazyLock实作了Sync trait,因此可在多线程环境中安全使用,不过也由于LazyLock需要处理线程同步,因此会产生额外的性能开销。

Rust 1.70加入了同样用于延迟初始化的OnceCell和OnceLock类型,不过LazyCell和LazyLock本身就包含了初始化逻辑,不像是OnceCell、OnceLock需要外部方法来提供初始化逻辑,因此LazyCell和LazyLock在使用上更为简单,不过当初始化逻辑需要依据运行条件变化,则OnceCell和OnceLock更加灵活。

Rust 1.80通过检查cfg名称和值,来强化代码的正确性和可靠性。该功能可以侦测和警告开发者可能的cfg名称或值的拼写错误,避免因为错误条件编译配置所导致的问题,确保开发者只使用已定义和预期的cfg条件,减少意外行为。

由于cfg检查功能在编译阶段就能发现潜在的配置问题,因此大幅降低在运行时才发现错误的风险,提高了整体的代码品质和开发效率。

Rust 1.80还引入了一个能够扩展模式比对范围的新功能,开发者已可以使用排他范围(Exclusive Range)语法a..b或..b,其提供类似Range和RangeTo表达式的功能,该表达式在处理连续范围时更方便,允许范围之间没有间格或是重叠,使某些类型的代码更清楚且不容易出错,维持语言的一致性和表达性。

热门文章
巴西拟将博彩税率提高至24% 税收将用于社保和医疗领域
游戏风向
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
PropellerAds 分享了新的 iGaming 案例研究:在 3 个月实现 97,674 次安装和 12,701 笔存款
广告营销
张侨伟参议员排除全面禁止,敦促菲律宾规范网络赌博
东南亚资讯
2027 Global Game Connect(GGC)斯里兰卡招商全面开启!业务人脉尽在掌握!
灰度头条
密西西比州众议院委员会推进提议增加赌场税的法案
游戏风向
亚洲顶尖游戏供应商多寶游戏 DB GAMING,开创亚洲市场的唯一首选
广告营销
菲律宾博彩技术赛道迎来新变局,B2B 供应模式加速渗透
东南亚资讯
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
亚洲游戏市场观察:15大市场热门游戏与用户趋势
线上游戏
新泽西州7月博彩收入创6.06亿美元新高,颁布禁令
游戏风向
准备好了将你的收益最大化吗?尝试ProPush.me Constructor!
广告营销
斯里兰卡博弈产业大转型,官方:剑指南亚拉斯维加斯
游戏风向
越南在线博彩业政策收紧 催生市场新机遇
东南亚资讯
英国确认各垂直行业的赌博税税率
游戏风向
首页
游戏
合作
发现
我的