【Rust日报】 2020-02-07 為什麼 Discord 要從go轉換到rust

2024-06-23 00:38

本文主要是介绍【Rust日报】 2020-02-07 為什麼 Discord 要從go轉換到rust,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

為什麼 Discord 要從go轉換到rust

今天來講的更詳細一點

他們發現go程式每兩分鐘就會有一個延遲高峰

這個延遲高峰是因為go每兩分鐘就要清一次記憶體垃圾

這個問題出現在 go 1.9.2 也許最新版修掉了

不過已經對Discord沒有意義了

這次的測試是在 2019年5月進行的

結論:

有GC的語言不代表你可以不用處理記憶體問題

他會在未來轉化成另一種成本更高的問題,如果你有做起來的話

但有GC的開發速度的確快,可以先用有GC的語言先開發個雛形驗證商業模式

在你的商業模式短時間不會改變的情況下,再用其它高效安全沒GC的語言去重寫

read more

從React的角度來看Rust和GTK

作者試了幾種能讓React跨平台的方案都失敗後決定來用native的UI

最後他選擇了 Rust + GTK

這種轉換對過去都寫前端的他並不容易

所以他整理了一些方向

方便之後有寫過React的Web前端

快速上手Rust + GTK來做Native前端

read more

Rust遊戲開發-生態系統調查

去年八月,我們對Rust gamedev生態系統進行了一項調查。

現在終於可以展示結果了。

  1. 是業餘愛好者,還是專業遊戲開發想用Rust做遊戲呢?

75%是業餘愛好者 20%是商業遊戲開發人員

  1. 你有用過Rust在遊戲開發嗎?

45% 考慮使用 50%正在用

  1. 作為一種語言和生態系統,Rust會給您作為遊戲開發人員帶來最大的負面影響嗎?

專業人士和業餘愛好者的工作重點基本相同。最大的區別是:

愛好者希望將生態系統成熟度提高兩倍。

愛好者更關心手機、網路的支援程度

專業人士更關心console(Xbox, PS4)支援

專業人士更關心C++互相溝通

  1. Rust的其它問題

無法正確除錯,例如hashmap絕對無法查看內容。不知道它在Rust是如何運作的。

缺少像Visual Studio這類強大的IDE支援

會Rust的人太少,不好找

Sony或Microsoft尚未正式在console(Xbox, PS4)上支援Rust

沒有專業的遊戲引擎(UE4,Unity)與Rust集成。

程式碼以及引擎都是C++。一起使用Rust和C++會很痛苦,

而將現有技術完全重寫為Rust將成本太高。

read more

成立LLVM ICE-breaker小組| Inside Rust博客

什麼是Cleaning Crew ICE-breaker組? “ Cleanup Crew”專注於改進錯誤報告。具體而言,目標是嘗試確保每個錯誤報告都包含修復它所需的所有信息:

一個錯誤的最小程式範例。

連接錯誤報告到重複錯誤報告或相關錯誤報告

如果錯誤是重新出現(曾經有用,但不再有效),把修正的PR的分為stable, nightly

誰應該加入? 熟悉Rust的任何人都可以完成此工作,而無需特別了解編譯器。

您可以在rustc-guide部分找到有關該組的更多信息。

read more


From 日报小组 @Damody

这篇关于【Rust日报】 2020-02-07 為什麼 Discord 要從go轉換到rust的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085855

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

Go 1.23中Timer无buffer的实现方式详解

《Go1.23中Timer无buffer的实现方式详解》在Go1.23中,Timer的实现通常是通过time包提供的time.Timer类型来实现的,本文主要介绍了Go1.23中Timer无buff... 目录Timer 的基本实现无缓冲区的实现自定义无缓冲 Timer 实现更复杂的 Timer 实现总结在

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙