【Rust日报】 2020-01-31 Rust編譯模型災難

2024-06-23 00:38

本文主要是介绍【Rust日报】 2020-01-31 Rust編譯模型災難,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

rust 1.41了!

除了一些功能更新

重要的是不再支援32-bit Apple產品了

read more

open-source security key

google 使用rust實作了 OpenSK

支援 FIDO U2F, FIDO2 兩種標準

read more

Rust編譯模型災難

文章作者Brian Anderson是Rust編程語言 及其姊妹項目Servo Web瀏覽器的共同創始人之一。

他現在在PingCAP擔任高級數據庫工程師。

他希望解決TiKV編譯緩慢的問題

在開發模式下進行完全重建可能需要15分鐘,在發布模式下可能需要30分鐘。

對於大型系統項目的開發人員來說,這聽起來可能並不那麼糟糕,

但是它比許多開發人員對現代編程環境所期望的要慢得多。

TiKV是一個相對較大的Rust代碼庫,

有200萬行程式碼。相比之下,Rust本身包含300萬行,而Servo則包含270萬行。

編程語言設計充滿了權衡利弊。這些基本選擇之一是runtime性能與編譯性能,

Rust團隊幾乎總是選擇runtime性能而不是編譯更快速。

如果快速編譯時間不是Rust設計的核心原則,那麼Rust的核心設計原則是什麼?這裡有一些:

實用性-它應該是一種可以在現實世界中使用的語言。

實用主義-它應該要讓人覺得可用,並且將其整合到之前的系統中。

內存安全性-它必須強制執行內存安全性,並且不能接受記憶體存取錯誤。

性能-它必須與C++在一樣快。

並發-它必須提供現代的解決方案來編寫並發代碼。

但這並不是說Rust設計師沒有在快速編譯時間中考慮任何因素。

但因為利弊的權衡,編譯器的性能還是愈來愈慢。

當作者每天使用Rust編譯器工作時,

電腦上至少擁有三份程式碼是很常見的,在其他所有版本都在構建和測試的同時。

我將開始在工作區1編寫程式,開始編譯,然後跳到工作區2,

開始在工作區2工作,編譯後再切換回工作區1。不斷進行在不同的工作區中切換。

雖然在2019年Rust的編譯速度有了提升,但目前Rust還是編譯的不夠快。

下一集會是作者如何優化Rust的編譯速度以達到產品經理的期待

read more

Bastion 0.34

什麼是Bastion?

Bastion是一個高度可用的容錯runtime系統,具有面向動態調度的輕量級流程模型。

它為輕量級過程實現提供了諸如並發之類的參與者模型,

並有效地利用了所有系統資源,並保證了每次傳送最多的消息。

基於消息的通信與actor model的Mesh網路。

runtime容錯能力使其成為分佈式系統的理想選擇。

具有NUMA感知和仿射緩存SMP執行程序的完全異步runtime。

監督系統使管理生命週期變得容易。

目前哪邊有用到Bastion?

SkyNet (Discord 機器人,用來重新發送已刪除的訊息)

在AWS Lambda中,我們使用Bastion啟用重試機制,並嘗試不同的解析策略來處理數據。

read more

Tide 0.6 了

Tide是一個還不成熟的 web framework

這一版增加了對CORS的支持與新的cookies API

也增加了一些新語法讓人用起來更簡單

read more

oreboot

oreboot是coreboot的分支

https://zh.wikipedia.org/wiki/Coreboot

來自維基百科的說明

coreboot,原名LinuxBIOS,是一個旨在取代大多數電腦中專有韌體(BIOS或UEFI)的軟體專案,它採用輕量級韌體設計,只執行載入和執行現代32位元或64位元作業系統所需的最少量任務。

Oreboot當前僅支援LinuxBoot。

Oreboot想利用Rust的安全性製作一個安全穩定快速的BIOS程式。

read more


From 日报小组 @Damody

这篇关于【Rust日报】 2020-01-31 Rust編譯模型災難的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

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的妙

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应