< 返回版块

binarytom 发表于 2021-10-16 20:23

在java和rust中返回Optional的开销对比

一些编程语言,如 Java 或 Scala,提供了不止一种方式来表达“lack of value”的概念。传统上,一个特殊的null值用于表示根本不引用任何值的引用。 然而,随着时间的推移,我们了解到使用null 可能非常容易出错,并且会导致许多麻烦,例如 NullPointerException在最意想不到的时刻出现错误使程序崩溃。因此,现代编程风格建议null尽可能避免使用更好的Option,Optional或Maybe数据类型(在很多语言中叫法不同,但概念是一样的)。不幸的是,人们认为 Java 中的可选值可能会带来性能损失。在这篇博文中,我将尝试回答是否属实,如果性能惩罚真的存在,那么严重程度如何。

文章链接,https://pkolaczk.github.io/overhead-of-optional/

让你的rust代码变得更快

使用Criterion.rs和火焰图进行性能调优。

性能是开发人员选择应用程序的首要原因之一。事实上,这是Rust-lang.org主页“为什么选择Rust?”部分列出的第一个原因,甚至要排在在内存安全之前。这也是有充分理由的——许多基准测试表明,用Rust编写的软件速度很快,有时甚至是最快的。不过,这并不意味着所有用Rust编写的东西都能保证速度。

文章链接,https://patrickfreed.github.io/rust/2021/10/15/making-slow-rust-code-fast.html

onetun:跨平台、用户空间WireGuard端口转发器

onetun在您的本地系统上打开一个TCP端口,流量从该端口转发到WireGuard网络中对等方的TCP端口。它不需要对操作系统的网络接口进行任何更改:您不需要拥有root访问权限,也不需要在本地系统上安装任何WireGuard工具即可使其正常工作。

唯一的先决条件是在远程WireGuard端点上注册对等IP和公钥;这些是WireGuard端点信任onetun对等点和路由数据包所必需的。

Gitlab 链接,https://github.com/aramperes/onetun

文章链接,https://www.reddit.com/r/rust/comments/q92cu4/onetun_crossplatform_userspace_wireguard/


From 日报小组 TOM

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页