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表达式的功能,该表达式在处理连续范围时更方便,允许范围之间没有间格或是重叠,使某些类型的代码更清楚且不容易出错,维持语言的一致性和表达性。

热门文章
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
横跨全球6个城市,灰度8场派对邀你共看世界杯,重塑高质量社交新场景
灰度头条
巴西拟将博彩税率提高至24% 税收将用于社保和医疗领域
游戏风向
哈萨克斯坦计划对在线赌场促销活动进行处罚
游戏风向
越南在线博彩业政策收紧 催生市场新机遇
东南亚资讯
超级PAC筹资4800万美元:体育博彩势力加码
游戏风向
菲律宾博彩技术赛道迎来新变局,B2B 供应模式加速渗透
东南亚资讯
PropellerAds 分享了新的 iGaming 案例研究:在 3 个月实现 97,674 次安装和 12,701 笔存款
广告营销
新泽西州7月博彩收入创6.06亿美元新高,颁布禁令
游戏风向
英国确认各垂直行业的赌博税税率
游戏风向
巴西颁布新法赋权央行封锁非法博彩账户及 Pix 交易
支付动态
越南博彩管控逐步放宽,惟本土需求仍显乏力
东南亚资讯
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
BETFAIR 网络攻击80万用户资料泄露
游戏风向
准备好了将你的收益最大化吗?尝试ProPush.me Constructor!
广告营销
首页
游戏
合作
发现
我的