![](https://img-blog.csdnimg.cn/direct/16e98fa5a72a456e9340b3e5c6a333b5.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
无畏并发Rust
文章平均质量分 92
前前后后遇到了很多语言,直到发现rust才是真爱!
代号0408
简单是效率的灵魂
展开
-
Rust代码优化的九大技巧
性能分析工具对于任何性能优化任务都是必不可少的,提供了明确的方向以集中精力进行优化。:Cargo 是 Rust 的包管理器,带有内置工具来分析代码性能,以识别性能瓶颈。这样的工具提供了程序在大多数时间中运行位置的可视化表示,帮助识别性能热点。:Rust 中的切片和数组操作经过高度优化,提供了高效操作集合的方法。:在性能关键的应用中,尤其是处理大数据集或实时处理时,使用这些技术。:最小化锁和其他同步原语的使用,以减少争用并在多线程应用中提高性能。:切片减少了显式边界检查的需求,利用 Rust 的安全保证。原创 2024-07-11 23:07:46 · 1209 阅读 · 2 评论 -
Rust基础学习-Modules&Package
在Rust中,可以使用mod// code这里,是模块的名称。看下面的例子;println!("config!");上面的示例中,我们使用mod定义了以config为名称的一个模块。在模块内部,我们定义 了一个简单的函数print;原创 2024-06-13 09:40:27 · 921 阅读 · 2 评论 -
Rust基础学习-标准库
栈和堆是我们Rust代码在运行时可以使用的内存部分。Rust是一种内存安全的编程语言。为了确保Rust是内存安全的,它引入了所有权、引用和借用等概念。要理解这些概念,我们必须首先了解如何在栈和堆中分配和释放内存。原创 2024-06-11 21:21:53 · 1212 阅读 · 3 评论 -
Rust基础学习-Rust宏
Rust中的宏是生成另一段代码的一段代码。可以根据输入生成代码,简化重复模式,使得代码更加简洁。比如我们一直在用的都是宏。原创 2024-06-08 09:24:36 · 882 阅读 · 3 评论 -
Rust基础学习-Rust中的文件操作
方法来打开一个指定文件,函数接收一个文件路径作为参数并返回一个文件对象,如果文件不存在,将会返回一个。文件 I/O 是通过提供与文件系统交互的功能的。中的文件读写相关的内容,掌握了文件处理中的读写删追等基本操作,怎么样,你坤哥厉不厉害!变量进行模式匹配,如果打开文件时出现错误,就会调用。这种方式写入文件,新的内容会将之前文件中的内容覆盖。运行程序会打印读取到的文件对象,如果存在的花。)的所有字节,并将其复制到一个可变字符串。如果打开文件没有错误,我们将输出。方法,该方法将一个空的可变字符串。原创 2024-06-06 10:16:06 · 1282 阅读 · 3 评论 -
X-CSV-Reader:一个使用Rust实现CSV命令行读取器
这篇文章主要学习如何基于Rust使用csv这个crate构建一个CSV文件读取器的过程。学习了csv相关的用法以及一些往期学过的crate的复习,兼顾了实用性和Rust的学习,是个很不错的练手小项目。原创 2024-05-27 08:47:35 · 1915 阅读 · 41 评论 -
无畏并发: Rust Mutex的基本使用
是很多编程语言避不开的一块主要内容,主打一个无畏并发的Rust自然也面临这样的挑战。Rust中的Mutex提供了强大的同步原语,确保共享数据的线程安全,这篇文章中,我们会探讨Mutex的使用,从基础的用法到一些高阶内容。原创 2024-05-26 18:00:50 · 1087 阅读 · 0 评论 -
Xed编辑器开发第三期:使用Rust从0到1写一个文本编辑器
继续[Xed编辑器开发第二期:使用Rust从0到1写一个文本编辑器](https://blog.csdn.net/2302_76401343/article/details/139001563?spm=1001.2014.3001.5502)的开发进度,这是第三期的内容:原创 2024-05-21 19:57:45 · 1466 阅读 · 39 评论 -
Rust AI:机器学习Candle 和Burn框架的简单对比
Candle和Burn代表了Rust生态系统在机器学习和人工智能方面令人兴奋的发展。Candle为深度学习任务提供了简单性和高性能,而Burn则提供了更全面的ML堆栈和更大的灵活性。CandleBurn。原创 2024-05-21 09:03:34 · 1690 阅读 · 3 评论 -
X-SCAN:Rust从零实现一个命令行端口扫描工具
我们的X-SCANIPAddressstart_portend_port// 命令行参数定义/// 想要嗅探的地址,必须是有效的IPv4地址。将回退到127.0.0.1#[bpaf(guard(start_port_guard, "必须大于0"),)]#[bpaf(guard(end_port_guard, "必须小于或等于65535"),)]这里主要用到了bpaf,这个上面讲过了,但是这里有一些东西需要提一下;这里用到了guard。原创 2024-05-18 14:23:15 · 1551 阅读 · 5 评论 -
Xed编辑器开发第二期:使用Rust从0到1写一个文本编辑器
现在,它在每行中绘制一个波浪号,这意味着该行不是文件的一部分,不能包含任何文本。当我们打印最终的波浪号时,我们会像在任何其他行上一样打印一个。如果在渲染屏幕的过程中发生错误,我们不希望程序的输出留在屏幕上,也不希望将错误打印在光标恰好位于该点的任何位置。在我们的文本编辑器中,我们将在正在编辑的文件末尾之后的任何行的开头绘制一个波浪号。让我们重构我们的代码,以便我们有一个用于低级按键读取的函数,以及另一个用于将按键映射到编辑器操作的函数。当终端绘制到屏幕时,光标可能会在屏幕中间的某个地方显示一瞬间。原创 2024-05-17 12:15:32 · 1083 阅读 · 6 评论 -
Xed编辑器开发第一期:使用Rust从0到1写一个文本编辑器
如果这篇内容跟下来,你还是觉得比较难,那么我推荐你暂时放一下,这里推荐一个我之前写的开源项目untools,这也是一个使用Rust编写的工具库,可以拿来练手,顺手点个star的同时也欢迎有想法有能力的同学PR;原创 2024-05-15 16:27:50 · 1384 阅读 · 2 评论 -
Rust 生命周期浅谈
生命周期是 Rust 中处理引用有效性的机制,确保引用在其引用的数据仍然有效时被使用。生命周期注解(lifetime annotations)用于标识引用的生命周期,帮助编译器进行检查。原创 2024-05-04 20:29:12 · 1557 阅读 · 3 评论