【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语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Go Gorm 示例详解

《GoGorm示例详解》Gorm是一款高性能的GolangORM库,便于开发人员提高效率,本文介绍了Gorm的基本概念、数据库连接、基本操作(创建表、新增记录、查询记录、修改记录、删除记录)等,本... 目录1. 概念2. 数据库连接2.1 安装依赖2.2 连接数据库3. 数据库基本操作3.1 创建表(表关

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c