-
你的工作是否属于一套拥有严格限制要求的系统?例如“我想在数据中心内开发一款每秒能生成TB级数据的程序,Rust能不能搞定?”当然可以搞定,这也是它强大性能的体现。
-
让程序运行得更快,对于用户有没有实际意义?例如,如果可以使用fd或者ripgrep在几秒之内翻阅根目录,我就不需要使用索引搜索。如果能高效完成实时音频处理,我们就能在CPU资源被耗尽之前再添加一些有趣的元素。如果图形处理更快,我们就能在流畅的UI动画中添加更多推送内容,由此建立起更直观的视觉反馈。
-
如果以上情况均不适用,那你的用户有没有“可以接受的性能下限?”例如,大多数情况下我们要求按钮在20毫秒之内对点击操作做出响应;这时候即使把响应时间再缩小一百倍,体验上也不会有太大区别。所以在本质上,性能的收益递减是从哪里开始的?
-
Rust的性能设计可以理解成“投入更多工程资源,让程序运行得极快”,但这样的工程成本具体有多高?有没有其他成本较低的选择也能实现高性能(例如购买配置更高的计算机,或者购买/租用更多计算设备),这些方案到底能省下多少工程资源?
-
如果你在这些问题上基本都给出了否定的答案,即“不需要那么高的原始性能(或者负担不起工程成本)”,那么Rust确实不太适合你。之前你提到的带垃圾回收机制的JIT编译就属于这类情况。