我们用来继续使用Golang的谎言

2024-11-26

本文批判了Golang的诸多设计缺陷,例如缺乏错误处理机制、易混淆的值类型和引用类型、nil和零值的处理方式等,并指出尽管Golang拥有不错的异步运行时和工具链,但其语言设计上的缺陷会导致代码库难以维护、错误难以追踪。作者认为,依赖其他公司使用Golang的经验来选择技术是不明智的,并驳斥了将Golang作为原型开发语言的观点,强调没有代码是真正可以丢弃的,使用Golang进行原型开发最终会导致难以重写和维护的问题。作者主张关注代码的正确性和可维护性,并认为长期来看,这比短期开发速度更重要。

阅读更多
未分类

Rust 中的小字符串

2024-08-25

本文探讨了 Rust 中三种字符串类型的内存分配和性能:标准库的 String、smol_str 库的 SmolStr 和 smartstring 库的 SmartString。作者首先演示了如何使用自定义分配器和日志记录来分析内存使用情况,然后使用不同的字符串类型解析 JSON 数据集,并比较它们的内存效率。分析表明,对于较短的字符串,SmolStr 和 SmartString 在内存使用和分配次数方面优于 String。作者还提供了微基准测试结果,比较了这三种类型的字符串构建、克隆和转换性能。

阅读更多
未分类