当前位置: 首页 > news >正文

利用mold加快rust程序构建

我用rust的cargo build命令编译polars-cli时,用时达到14分钟,如下所示。

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 14m 19s,

通过核对时间戳,发觉其中最后一步生成可执行文件花了6分钟。
于是向DeepSeek请教,我在编译polars-cli时,debug 总用时14分钟,最后一步生成可执行文件花了6分钟,有办法缩短吗?
他向我推荐了mold(现代链接器),它的主页是https://github.com/rui314/mold,
关于rust它这么说

If you are using Rust
Create .cargo/config.toml in your project directory with the following:

[target.‘cfg(target_os = “linux”)’]
linker = “clang”
rustflags = [“-C”, “link-arg=-fuse-ld=/path/to/mold”]
where /path/to/mold is an absolute path to the mold executable. In the example above, we use clang as a linker driver since it always accepts the -fuse-ld option. If your GCC is recent enough to recognize the option, you may be able to remove the linker = “clang” line.

[target.‘cfg(target_os = “linux”)’]
rustflags = [“-C”, “link-arg=-fuse-ld=mold”]
If you want to use mold for all projects, add the above snippet to ~/.cargo/config.toml.

我的gcc版本12.2足够新,把上述两行添加到/usr/local/cargo/config.toml,但是cargo build报错:

  = note: cc: error: unrecognized command-line option '-fuse-ld=/par/mold240/bin/mold'    

再问deepseek, 得到了答案,原来gcc不支持绝对路径,而我用上述clang的语法加了绝对路径。所以要把mold二进制文件的位置加入PATH搜索路径。
用简单的命令试验成功

export PATH=/par/mold240/bin:$PATH
gcc fib.c -o fibm -fuse-ld=mold

于是修改 /usr/local/cargo/config.toml 为如下

cat  /usr/local/cargo/config.toml
[source.crates-io]
replace-with = 'mirror'[source.mirror]
registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"[registries.mirror]
index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"[target.'cfg(target_os = "linux")']
rustflags = ["-C", "link-arg=-fuse-ld=mold"]

再次执行cargo build成功,全部重新编译用时

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 04s

构建速度提高了4倍,得到的二进制文件只比ld生成的略大。

相关文章:

利用mold加快rust程序构建

我用rust的cargo build命令编译polars-cli时,用时达到14分钟,如下所示。 Finished dev profile [unoptimized debuginfo] target(s) in 14m 19s,通过核对时间戳,发觉其中最后一步生成可执行文件花了6分钟。 于是向DeepSeek请教&a…...

leetcode543-二叉树的直径

leetcode 543 思路 路径长度计算:任意两个节点之间的路径长度,等于它们的最低公共祖先到它们各自的深度之和递归遍历:通过后序遍历(左右根)计算每个节点的左右子树深度,并更新全局最大直径深度与直径的关…...

(三)yolov5——模型训练

一、准备数据 先准备一个MP4的视频 1.测试一帧 使用opencv来提取每一个视频的帧 先使用以下代码查看一帧的内容,是否符合预期 import cv2 import matplotlib.pyplot as plt# 打开视频文件 video cv2.VideoCapture("111.mp4") # 读取一帧 ret, frame…...

STM32对接霍尔传感器

STM32对接霍尔传感器的技术解析与应用实现,结合测速原理、硬件设计、代码实现及进阶应用,涵盖从基础到实战的全流程指南,可以应用到金属检测等功能。 ⚙️ 一、霍尔传感器基础 工作原理 霍尔传感器基于霍尔效应,当磁铁靠近时输出电平变化(常开型无磁铁时输出高电平,靠近时…...

SpringCloud系列(32)--使用Hystrix进行全局服务降级

前言:在上一节中我们使用Hystrix进行了服务降级,但是要在每个方法上面配置HystrixCommand才能实现服务降级,如果需要进行服务降级的方法多了,HystrixCommand也就得配置很多遍,所以本节内容则是使用Hystrix进行了全局服…...

Origin绘制三Y轴柱状图、点线图、柱状点线图

三Y轴柱状图是一种高级数据可视化形式,它通过三个独立的纵轴在同一个图表中展示不同量纲或量级的数据系列。其主要用于揭示不同量级指标间的关联性(例如高销售额是否伴随高利润率)。 当数据满足以下条件时,即可绘制三Y轴图&#x…...

通信网络编程3.0——JAVA

主要添加了私聊功能 1服务器类定义与成员变量 public class ChatServer {int port 6666;// 定义服务器端口号为 6666ServerSocket ss;// 定义一个 ServerSocket 对象用于监听客户端连接//List<Socket> clientSockets new ArrayList<>();// 定义一个列表用于存储…...

4-深度学习网络层

深度学习模型 Embedding层 Embedding矩阵是可训练的参数&#xff0c;一般会在模型构建时随机初始化 也可以使用预训练的词向量来做初始化&#xff0c;此时也可以选择不训练Embedding层中的参数 输入的整数序列可以有重复&#xff0c;但取值不能超过Embedding矩阵的列数 核心…...

【LeetCode】用双指针解决移除元素问题、合并两个有序数组求解

&#x1f525;个人主页&#xff1a;艾莉丝努力练剑 ❄专栏传送门&#xff1a;《C语言》、《数据结构与算法》、C语言刷题12天IO强训 &#x1f349;学习方向&#xff1a;C/C方向 ⭐️人生格言&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;…...

车载诊断架构协议篇 --- OBDonUDS和ZEVonUDS

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 做到欲望极简&#xff0c;了解自己的真实欲望&#xff0c;不受外在潮流的影响&#xff0c;不盲从&#x…...

医学 Agent:自带医学深度调研 deep research,优化治疗策略+药物参考

医学 Agent&#xff1a;自带医学深度调研deep research&#xff0c;优化治疗策略药物参考 第一版代码输出结果&#xff0c;居然连不上网运行结果梳理 第二版结果测试 第一版代码 医疗顾问AI系统 - 基于Qwen API 的智能医疗助手 最终目标&#xff1a;构建一个能够查询疾病治疗方…...

硬件工程师笔试面试高频考点汇总——(2025版)

目录 1 电子器件部分 1.1 电阻 1.1.1 电阻选型时一般从哪几个方面进行考虑? 1.1.2 上拉下拉电阻的作用 1.1.3 PTC热敏电阻作为电源电路保险丝的工作原理 1.1.4 如果阻抗不匹配&#xff0c;有哪些后果 1.1.5 电阻、电容和电感0402、0603和0805封装的含义 1.1.6 电阻、电…...

春秋云镜【CVE-2017-18349】fastjson wp

知识点 fastjson反序列化 将json转为java对象的过程 漏洞存在版本 Fastjson<1.2.24 漏洞原理 fastjson引入的autotype功能&#xff0c;本来是为了区分同名同元素但是不同类型的对象序列化后内容一致无法还原的问题&#xff0c;但是这一操作允许了json数据中通过type来指定对…...

网络编程:八股文

一.Reactor网络模型 ------------------- | 应用主线程 | -------------------|v ------------------- | Reactor | | (事件分发器) | -------------------|v ------------------- | 事件多路分发器 | <--- epoll/poll/select -----------------…...

设计模式精讲 Day 11:享元模式(Flyweight Pattern)

【设计模式精讲 Day 11】享元模式&#xff08;Flyweight Pattern&#xff09; 文章内容 在软件开发过程中&#xff0c;我们常常需要处理大量相似对象的创建和管理问题。如果这些对象之间存在大量的重复信息&#xff0c;直接创建每一个对象会导致内存占用过高、系统性能下降。享…...

常用终端命令(Linux/macOS/bash 通用)分类速查表

文件与目录操作 命令作用说明pwd显示当前路径ls列出当前目录内容ls -l以列表形式显示文件详细信息ls -a显示所有文件&#xff08;包括隐藏文件&#xff09;cd <目录名>进入指定目录cd ..返回上一级目录cd ~回到用户主目录mkdir <目录名>创建目录mkdir -p a/b/c创建…...

Robyn高性能Web框架系列04:事件、中间件与错误处理

请求-响应过程 应用启动、关闭事件1、启动事件&#xff08;Startup Events&#xff09;2、关闭事件&#xff08;Shutdown Events&#xff09; 中间件1、前置中间件&#xff08;BeforeRequest&#xff09;2、后置中间件&#xff08;AfterRequest&#xff09;3、示例&#xff1a;…...

深入理解JavaScript设计模式之迭代器模式

文章目录 深入理解JavaScript设计模式之迭代器模式定义官方翻译白话翻译 实现jQuery中的each迭代器实现数组迭代器迭代器实现创建Dom元素 内部迭代器和外部迭代器内部迭代器外部迭代器 迭代类数组对象和字面量对象倒序迭代器中止迭代器迭代器的应用举例音乐播放器案例待输出更新…...

【项目管理】项目管理资料文档模板(ZIP,PPT,WORD)

项目交付文档 01项目详细调研计划编写规范V1.0.doc 03项目详细调研报告编写规范V1.0.doc 07软件需求规格说明书评审规范V1.0.doc 10.软件需求规格说明.doc 产品检查单,xls 工程评审.zip 软件标准过程集.zip 系统测试管理规程.docx 四)项目管理计划.doc 项目管理系统实施项目管理…...

DeepSeek中的提示库及其用法示例

《DEEPSEEK原生应用与智能体开发实践 图书》【摘要 书评 试读】- 京东图书 为了深入探索DeepSeek提示词样例的丰富内涵&#xff0c;充分挖掘其背后潜藏的无限可能&#xff0c;同时致力于为用户打造更为卓越、便捷且高效的使用体验&#xff0c;DeepSeek官网的API文档匠心独运地…...

292. Nim 游戏

292. Nim 游戏 - 力扣&#xff08;LeetCode&#xff09; 想法 枚举问题&#xff1a; n 1 ~ 3 &#xff0c;由于我先手&#xff0c;我可以直接拿走全部的石头&#xff0c;所以我赢n 4&#xff0c;由于我先手&#xff0c;我拿掉 1 - 3 块石头 &#xff0c;剩下的可能就是 1 -…...

STM32 串口通信②:蓝牙模块HC-05控制单片机

一 前言 上一篇我们已经成功实现单片机和电脑的连接&#xff0c;接下来&#xff0c;我们学习一个有趣的板块&#xff0c;HC-05蓝牙模块&#xff0c;这个蓝牙模块&#xff0c;我们就要建立手机和单片机的通讯啦&#xff0c;还是比较有趣的一个过程&#xff0c;大家可以跟着多操作…...

艾立泰数字化重塑汽车零部件包装租赁行业

在汽车零部件包装租赁行业&#xff0c;资产利用率低、流转效率差、运输成本高等痛点长期困扰企业。艾立泰科技通过数字化解决方案&#xff0c;成为该行业降本增效的关键合作伙伴&#xff0c;助力企业实现从传统管理模式向智能化的跃迁。 精准库存管理&#xff1a;告别“盲人摸…...

Windows电脑数据恢复终极指南:从原理到实战

Windows电脑数据恢复终极指南&#xff1a;从原理到实战 数据丢失是每个电脑用户都可能遭遇的噩梦。本文将为您全面解析Windows平台下的数据恢复技术&#xff0c;从基础原理到高级技巧&#xff0c;帮助您在文件误删、格式化、系统崩溃等情况下找回宝贵数据。 一、数据恢复基础…...

进入python虚拟环境的方法

首先&#xff0c;切换到虚拟环境所在的目录&#xff08;即包含venv文件夹的目录&#xff09;&#xff1a; Cmd cd D:\phd\phd1spring\July\pythonstduy\projecton 然后&#xff0c;激活虚拟环境&#xff1a; Cmd .\venv\Scripts\activate 如果上述方法不行&#xff0c;还可…...

大数据时代UI前端的变革:从静态展示到动态交互

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在大数据时代&#xff0c;信息以前所未有的速度和规模增长。这种数据环境的变化&#xff0c;深…...

海拔案例分享-门店业绩管理小程序

在各大电商平台和直播带货如火如荼来的当下&#xff0c;各行各业的门店都在积极寻求创新的管理方式&#xff0c;以提升业绩、优化运营。长沙的一家策划运营公司&#xff0c;敏锐地捕捉到这一市场需求&#xff0c;他们见过太多门店老板对着Excel表格叹气&#xff1a;美容店算错提…...

Python中的数据可视化:使用Matplotlib绘制图表

数据可视化是将复杂数据集转换为图形或图像表示的过程&#xff0c;旨在简化信息的解释和传达。Python作为一种多功能编程语言&#xff0c;提供了多种强大的库来实现这一目标&#xff0c;其中最受欢迎和广泛使用的是Matplotlib。 首先&#xff0c;我们需要确保已经安装了必要的…...

【VUE】1.准备工作

一、环境准备&#xff08;本机仅需一次&#xff09; 安装 Node.js&#xff08;推荐 LTS 版本&#xff0c;包含 npm&#xff09; 打开 VSCode&#xff0c;安装插件&#xff08;推荐&#xff09;&#xff1a; Vetur 或 Volar&#xff08;用于 Vue 支持&#xff09; ESLint / Pr…...

Linux下的版本控制器Git(15)

文章目录 如何理解版本控制&#xff08;9-0.00.00&#xff09;Git 的理解Git 的历史具体操作和用法补充细节 简介&#xff1a;那个对Git的理解&#xff0c;是我用自己的话语结合故事进行阐述&#xff0c;可能理解的不到位&#xff0c;有些错误还请多多包含&#xff01;说句实话…...

UI设计 | 审美积累 | 极繁风格(Maximalism / Complex UI)

如果极简追求“只保留必须的”&#xff0c;那极繁的设计思路就是“有条理地堆叠信息和情绪”。它不是无序的炫技&#xff0c;而是在秩序中有意识地填满视觉空间&#xff1a;字体层叠、图文混排、大量干扰信息并置&#xff0c;却又彼此克制。最终目标&#xff0c;是让用户在强信…...

MocapApi 中文文档 和github下载地址 NeuronDataReader(以下简称 NDR)的下一代编程接口

以下是 MocapApi 技术文档 github https://github.com/pnmocap/MocapApi?tabreadme-ov-file 国内可以查找getcode 英文文档 https://mocap-api.noitom.com/mocap_api_en.html 概述 MocapApi 是 NeuronDataReader&#xff08;以下简称 NDR&#xff09;的下一代编程接口&…...

c++面试题每日一学记录-C++类型转换

一、C++ 类型转换体系 C++ 提供 4 种命名转换操作符,比 C 风格转换更安全、意图更明确: 转换类型关键字主要用途安全检查静态转换static_cast相关类型转换(数值、类层次上行/下行)编译期动态转换dynamic_cast多态类型的安全下行转换运行时常量转换const_cast添加/移除 con…...

Maven 多模块项目调试与问题排查总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

【C#】C#异步编程:异步延时 vs 阻塞延时深度对比

文章目录 前言一、阻塞延时&#xff1a;Thread.Sleep1、 实现方式2、 工作原理3、 缺点 二、异步延时&#xff1a;Task.Delay1、 实现方式2、 工作原理3、 优点 三、深度对比四、实际应用示例对比1、 阻塞延时在UI应用中的问题2、 异步延时在UI应用中的正确用法3、 带取消功能的…...

c#实现halcon的rle编码blob分析

效果展示 实现功能 connection膨胀腐蚀开运算闭运算特征计算 核心代码 using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Drawing; using System.Linq;namespace view3d {// 基础对象类&#xff0c;类似于 Halcon 的 HO…...

python基于微信小程序的广西文化传承系统

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示&#xff1a;文章底部获取博主联系方式&#xff01;&#xff01;&#xff01;&#xff01;本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献&#xff1a;源码获取/详细视频演示 ##项目…...

Apache Flink深度解析:现代流处理引擎

好的,我来帮您写一篇关于Flink技术的详细介绍博客: Apache Flink深度解析:现代流处理引擎 一、Flink简介 Apache Flink是一个开源的分布式流处理和批处理统一计算引擎。它提供了数据流上的状态计算、精确一次性语义保证、高吞吐、低延迟等特性,能够运行在所有常见的集群…...

跨平台后端编程ASP.NET CORE Razor新一代Web开发框架C#

asp.net core Razor动态语言编程代替asp.net .aspx更高级吗&#xff1f; https://blog.csdn.net/xiaoyao961/article/details/148846065 C#Blazor应用-跨平台WEB开发VB.NET-CSDN博客 https://blog.csdn.net/xiaoyao961/article/details/148846437 Products.razor文件,Blazor和…...

【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略

&#x1f310;【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略 &#x1f308; 个人主页&#xff1a;创客白泽 - CSDN博客 &#x1f525; 系列专栏&#xff1a;&#x1f40d;《Python开源项目实战》 &#x1f4a1; 热爱不止于代…...

uniapp安卓GPIO电平控制

模块简介 本模块为 UniApp 提供了对 Android 系统下 GPIO 的访问能力&#xff0c;支持导出、设置方向、读写电平值等操作。适用于 Android 架构设备&#xff08;如 RK3288 平台&#xff09;。 支持功能 功能方法名说明初始化 GPIO 方向initGpio({gpio, direction})设置 GPIO…...

苹果芯片macOS安装版Homebrew(亲测)

在Linux服务器上安装一个软件常用yum&#xff0c;apt、dnf命令&#xff0c;同样macOS可以使用brew命令来安装软件。 brew会自动帮你下载、解压、安装和配置&#xff0c;更重要的是&#xff1a;它还会自动处理好软件之间的依赖关系&#xff0c;它将所有软件都安装在独立的统一目…...

vue | vue-macros 插件升级以及配置

Vue Macros 是一个为 Vue.js 提供更多宏和语法糖的开源项目vue-macros/vue-macros: Explore and extend more macros and syntax sugar to Vue. 问题&#xff1a;npm run build-only 打包时&#xff0c;报错&#xff1a;[Vue] Load plugin failed: vue-macros/volar 排查发现…...

计算机网络:(六)超详细讲解数据链路层 (附带图谱表格更好对比理解)

计算机网络&#xff1a;&#xff08;六&#xff09;超详细讲解数据链路层 前言一、数据链路层1. 数据链路层是什么&#xff1f;2. 哪些设备需要数据链路层&#xff1f;3. 数据链路层如何工作&#xff1f;4. 数据链路层的俩种信道4.1 点对点信道&#xff1a;一对一4.2 广播信道&…...

智能生成分析报告系统在危化安全生产监测预警评估中的应用

一、引言 在危险化学品安全生产监管中&#xff0c;传统的分析报告依赖人工整理与审核&#xff0c;效率低、响应慢&#xff0c;且极易受到主观判断、格式不规范、不同地区掌握尺度不一致的影响。而随着工业互联网、大数据、人工智能&#xff08;AI&#xff09;特别是大语言模型…...

微算法科技(NASDAQ:MLGO)研发可信共识算法TCA,解决区块链微服务中的数据一致性与安全挑战

随着区块链技术的不断演进和应用场景的拓展&#xff0c;微服务架构因其灵活性、可扩展性以及易于维护的特点&#xff0c;逐渐成为了构建复杂系统的首选架构模式。如何在微服务架构中有效应用区块链技术&#xff0c;确保数据的一致性和安全性&#xff0c;成为了一个亟待解决的问…...

UE5 开发遇到的bug整理

文章目录 一、人物在挂载某个Actor之后&#xff0c;移动有问题&#xff0c;可能是Actor类的碰撞没有关闭&#xff0c;和人物自身发生了碰撞。 一、人物在挂载某个Actor之后&#xff0c;移动有问题&#xff0c;可能是Actor类的碰撞没有关闭&#xff0c;和人物自身发生了碰撞。...

单片机——浮点数转换4位数码管显示

浮点数转换4位数码管显示 static char buffer[5]; int DecimalPlace 0; #define HideChar h void DisplayFloatOn4LED(float value) {long integer roundf(value );if (integer > 9999) //4位{integer 9999;snprintf(buffer, sizeof(buffer), "%4ld", integer…...

广东省专升本英语形容词与副词全梳理

一、形容词核心知识详解 &#xff08;一&#xff09;形容词的构成方式&#xff08;附记忆技巧&#xff09; 1. 后缀派生法&#xff08;9 大核心后缀&#xff09; ① -ly 结尾形容词&#xff08;易混副词&#xff0c;重点记忆&#xff09; ✅ 特点&#xff1a;虽以 - ly 结尾…...

GeoServer和GeoTools XML外部实体注入漏洞(CVE-2025-30220)

免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...