这是程序员聚在一起必定会讨论的问题,特别是在大家还不熟,不好意思聊妹子、聊游戏的时候。Rust作为最近的后起之秀,在出生后的短短6年时间内就登上了“2021年05月编程语言排行榜”的第24位,可以说成绩斐然。作为C/C++的有力替代者,Rust其中一个最引人注目的特点就是安全性,今天我们尝试通过一些数据分析来看看Rust能否在安全上完虐C/C++。
在过去几年中,Rust编程语言以其独特的安全保障特性和高效的性能,成为了众多开发者和大型科技公司的新宠。尤其是其内存安全特性,成为了广泛讨论和赞扬的焦点。本文旨在深入探讨内存安全的概念、Rust在内存安全方面的独到之处,以及这些特性对系统开发的深远影响。
rust/src/tools/miri/src/concurrency/weak_memory.rs 文件是Miri工具中的一部分,用于实现弱内存模型。
许多人不停抱怨 Ruby 运行缓慢。诚然,它的确不如人意,然而这并非致命伤,因为问题的根源在于你的数据库速度缓慢,成为了瓶颈。因此,这个标题也可以改为 “Ruby 虽慢,但对你而言无关紧要”。
Josh Urbane 是一位从业多年的软件架构师,很喜欢在社交媒体分享技术观点。近日,他写了一篇文章,记录了自己凭借经验赢了与新人开发者打赌的故事,而“我的 JavaScript 比你的 Rust 更快”的结论也是来自这个打赌。他的故事或许可以说明运行策略在研发实践中的重要性。
Rust 虽然是安全语言,但是默认写的代码,尤其是用了unsafe或 写并发代码的时候,还会有安全风险。依赖于开发者对所有权、生命周期的理解,以及API设计的功力。
考虑到,我用这门语言的时间只有一星期多,某些观点和感受并非那么准确。因此,我的观点并不适合作为一份参考材料。
编程语言的内存模型是理解编程语言如何管理和操作计算机内存的关键。 它定义了编程语言中变量、数据结构和程序的存储方式,以及它们之间的交互方式。通过理解内存模型,程序员可以更有效地利用内存资源,优化程序性能,并避免常见的内存错误。
在iOS开发中,我们常常会用到@property来声明属性,在声明属性的关键字中有一对atomic和nonatomic关键字。
MySQL优化一般是需要索引优化、查询优化、库表结构优化三驾马车齐头并进。 本章节开始讲查询优化。 一、为什么查询速度会慢 可以把查询当作一个任务,它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上是优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得更快。 MySQL在执行查询的时候有哪些子任务,这个是有一定的方法进行剖析的,具体方法下回单独拿一个章节来分析。 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务端,然后在服务器上进行解
Google 发布了一份报告,表明 Rust 并不比其他编程语言难学,尽管它的编译速度很慢。
动态模板引擎是阿里巴巴优酷技术团队研发的一套轻量级的纯Native动态化卡片跨端解决方案。动态模板引擎是阿里巴巴优酷技术团队研发的一套轻量级的纯Native动态化卡片跨端解决方案。
选自Medium 作者:Maciej Kula 机器之心编译 参与:程耀彤、蒋思源 像 PyTorch 或 TensorFlow 这样通用的自动微分框架是非常有用和高效的,而且在大多数情况下,几乎不需要再写一些更专门化的东西。然而本文作者构建了一个自动微分库,以高效地计算小批量数据上的训练。此外,作者还详细描述了在构建自动微分库中的过程与思考,是理解自动微分理念的优秀博文。 我最近开始写自己的 autodiff 程序包。这篇博客文章记录了我一路以来学到的东西,并把它当成 Julia Evans 的「穷人版」
“我认为我们的内核的中国开发者,因为语言和文化障碍,中国內核开发者比我们 (预期) 可以拥有的少 ”——Linus Torvalds,2022 OpenCloudOS 社区开放日
Snips(一家做音频识别的创业公司) 出品。在神经网络领域,现在基本已经被 TensorFlow 和 PyTorch 给占了。但是对于移动设备或IoT这些性能受限的设备,还有很多空间可以尝试。TensorFlow组推出了 TensorFlow Lite,微软的 ONNX 看上去也很有前景。一些硬件厂商也推出了他们自己的方案 Android NN API, ARM NN SDK , Apple BNNS 等等。但是它们都只能满足一些特定领域的需求。
这个是上周三即12月15日发布的消息了,目前官方透露的信息很少,给了一个简陋的官网:https://zed.dev/
P99 Conf[1] 是一个由 Scylladb[2] 组织的新的跨行业的线上Conf,为工程师而设。该活动以低延迟、高性能设计为中心,范围包括操作系统(内核、eBPF、IO_uring)、CPU(Arm、Intel、OpenRisc)、中间件和语言(Go、Rust、JVM、DPDK)、数据库和可观测性方法。P99 CONF只面向技术人员,你的老板不在邀请之列。
在Rust的源代码中,rust/library/core/src/ptr/metadata.rs 文件的作用是定义了与指针(ptr)和元数据(metadata)相关的结构体和 trait,提供了对指针的元数据信息进行操作和处理的功能。
每个操作系统都有一个内核,内核封装了底层硬件设备管理、内存管理、网络数据协议转化和收发传输、文件系统读写等。从这个图可以看到,内核将系统硬件与应用程序进程连接起来,隐藏了上层下层交互的一些细节,各司其职。
async 是一个修饰符,它可以应用在函数上,这种函数不会在调用时一句句运行完成,而是立即返回一个 Future 对象,这个 Future 对象最终将给出这个函数的实际返回结果。而在一个这样的 async 函数中,我们可以使用await运算符,将它用在其它会返回 Future 的函数上,直到那些 Future 返回实际结果。通过这种方法,异步并发开发更加方便了。
当今,包括推理应用程序和智能体在内的大多数LLM应用程序是用Python编写的,但这种形势即将发生改变。对于新一波开发人员来说,Python太慢了,太臃肿了,而且自相矛盾,非常笨拙。其实,LLVM的Chris Lattner,即Clang和Swift的发明者已经证实了Python比编译语言慢35,000倍——这也是为什么他发明了Mojo语言作为Python的替代品。
此前的Rustc编译器基于LLVM后端开发。由红帽、Mozilla和英特尔等公司组成的“字节码联盟”发布了编译器后端软件Cranelift,它致力于功能和安全性,并完全使用Rust语言构成。评论认为,相比于目前的LLVM后端,Cranelift小幅提高了调试模式的编译速度。Cranelift的另一特色是,可以重复利用输出的字节码值,以提高生成效率。这意味着,Rust编译器从前到后,从最底层的生成、优化后端,到语词法、软约束前端,已经有能力全由Rust语言自举。
最近工作中,对我司的 MPP 数据库产品 (https://github.com/cloudberrydb/cloudberrydb) 进行存算分离的改造,我们的组件最开始是 C++ 写的,但是由于产品本身是基于 Postgres (C 语言),所以又引入了非常多的 C 代码。
这里我们比较的是相关语言在处理一些函数的速度,数据来源debian的benchmarksgame[2],如下图:
作为一名 C/C++ 程序员,C/C++ 语言中的指针是使用得最爽的,几乎无所不能,各种奇技淫巧也层出不穷。但 C/C++ 语言中最折磨人的也是指针,伴随着开发过程的就是和指针导致的内存问题做斗争。
根据谷歌安全消息,十多年来,内存安全漏洞一直占整个产品和整个行业漏洞的 65% 以上。但近期在 Android 上,内存安全漏洞显着减少,并且相关的漏洞严重性也有所下降。 “从 2019 年到 2022 年,内存安全漏洞的年度数量从 223 个下降到 85 个,”Android 安全工程师 Jeffrey Vander Stoep 在博客文章中说道。Jeffrey 表示,这种下降与放弃内存不安全编程语言的努力相吻合,这里的“内存不安全编程语言”指的是 C/C++。 从去年的 Android 12 开始,R
我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样, 有点傻里傻气的。
在本指南中,我们将比较 Rust 和 Python 编程语言。我们将讨论每种情况下的适用用例,回顾使用 Rust 与 Python 的优缺点,并说明为什么 Rust 可能会取代 Python。
自2013年年底以来,作者本人时断时续地会用Rust语言编程。4周前,再次用到Rust,语言比上次使用时更加容易(2016年5月)。这真的很令人兴奋!所以谈谈为什么现在喜欢使用Rust语言,以及几个关于Rust语言明年发展趋势的想法! 我和Rust 我是一个中级Rust程序员(绝对不是高级程序员!)。现在正在写一个Rust的剖析器,这是一个迄今为止大约有1300行Rust代码的软件。2013年,我用Rust语言写了一个很小的400行的“操作系统”(基本上是一个小键盘驱动程序)。 尽管没有太多的Rust经验(
我在滑铁卢大学的最后一个学期选了CS444:编译原理这门课程,课程项目是编写一个编译器,将Java语言的子集编译成x86代码,三人结组,语言自由选择。
Rust 现在已经越来越受到科学家们的欢迎了,比起 Python,Rust 有着更高效的性能,同时在社区建设方面也让用户体验更舒服。虽然学习难度大了些,但综合下来,越来越多的科学家认为时间花的值。
Rust vs. Go,在2024年,应该选择哪一个?或者说应该选择哪种语言——GoLang还是Rust。这可能是许多程序员在选择语言时考虑的一个问题。选择理想的编程语言被视为在这个不断变化的环境中取得成功的重要抉择。
电脑越用越卡严重影响我们的工作效率怎么办?今天小老弟教你如何处理提高电脑运行速度。
玄武门之变是唐高祖武德九年六月初四(公元626年7月2日)由当时唐高祖李渊次子秦王李世民在唐王朝的首都长安城大内皇宫的北宫门——玄武门附近发动的一次流血政变。
作者 | Kornel 译者 | Sambodhi 策划 | 赵钰莹 本文最初发表于原作者个人博客,经原作者 Kornel 授权,InfoQ 中文站翻译并分享。 使用 Rust 语言编写的程序,其运行时速度和内存使用情况应该和用 C 语言编写的程序相差不大,但是,由于这些语言的整体编程风格不同,所以它们的速度很难一概而论。本文总结了 Rust 和 C 有何相同之处,以及什么情况 C 更快,什么情况 Rust 更快。 声明:本文并非一个客观的基准,只是揭示了这些语言无可争辩的事实。这两种语言理论上能够实现什么
本次,临界 (Hashgard) 旗下的研究机构Hashgard Labs与BKFUND研究院共同完成了一篇研究报告,对虚拟机进行了深度分析。
区块链的安全性、速度和开发者活动都取决于其底层编程语言和虚拟机。两种最流行的编程语言是 Solidity 及 Rust,Solidity 用于为以太坊虚拟机(EVM)构建去中心化的应用程序,而 Rust 则用于 Solana 上的 dApps。
ArrayList,Vector, LinkedList的存储性能和特性? ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦 LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始。 ArrayList和Vector都是用数组方式存储数据,此数组元素数要大于实际的存储空间以便进行元素增加和插入操作,他们都允许直接用序号索引元素,但是插入数据元素涉及到元素
一直以来,官方口径都是尽量不要碰 CSharp 里的 unsafe 部分,以至于在大部分其它语言的程序员眼里,甚至 CSharp 程序员的眼里,CSharp 就是一个 java,做做 CRUD,捣鼓捣鼓局限于 windows 平台的 Winform 和 WPF 就行了。
BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。
之前提到的Mutex、Condvar是Rust中比较偏高层的共享数据型并发控制,更底层的并发控制也有,比如Atomic(原子操作)。
线程池隔离–快慢分离 目的:部分慢执行的线程,会拖慢整个线程池,因此我们需要将快慢分离。 需要区分出哪些是慢线程,这里给一个依据是一分钟内的慢执行(耗时大于500ms)次数为10次。
高性能,内存利用率高,没有运行时和垃圾回收 可靠 , 丰富的类型系统和所有权模型保证内存和线程安全,编译器可以消除各种错误 生产力, 包管理器、构建工具一流, 多编辑器支持自动补齐和格式化代码
我们都知道Polars很快,但是最近DuckDB以其独特的数据库特性让我们对他有了更多的关注,本文将对二者进行基准测试,评估它们的速度、效率和用户友好性。
编程 许多新的编程语言正在试图取代 C 编程语言,其中大多数都被贴上了“C 杀手”的标签。这一类别中最值得注意的是 Zig 和 Rust,我们最近讨论过它们。Zig 是一种快速、高性能的低级、编译、静态类型系统编程语言,旨在成为 C 的最终替代品。Zig 声称比 C 更快、性能更高。Zig 由 Andrew Kelley 设计,于 3 月份首次发布2016年。
在Rust源代码的rust/library/std/src/sys/windows/c.rs文件中,主要定义了Rust对于Windows操作系统的系统调用接口。该文件定义了各种Windows特定的结构体、枚举和常量,以支持与操作系统的交互。
不知不觉,Rust1.0发布已经四周年了。 Rust 1.0是2015年5月15号发布。所以,四年了,大家学会Rust了吗?
大家好,我是猫哥。我对于编程语言跟其它学科的融合非常感兴趣,这种兴趣在创办公众号时就已非常浓烈,因此,几个月来,就做了不少大胆的尝试。不敢说取得了什么“成果”吧,但至少是做到了独树一帜。
导读:C语言五十年来一直是软件开发的一种主力语言。本文介绍它在如今的2019年与C++,Java,C#,Go,Rust和Python抗衡的方式。
领取专属 10元无门槛券
手把手带您无忧上云