news 2025/12/26 14:54:35

16、构建与算术:GNU make的实用技巧与挑战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
16、构建与算术:GNU make的实用技巧与挑战

构建与算术:GNU make的实用技巧与挑战

1. 构建过程中的处理器与加速问题

在小型构建任务中,处理器数量与最大加速比存在一定关系。以下是相关数据:
| 处理器数量 | 最大加速比 |
| — | — |
| 10 | 2.46x |
| 11 | 2.50x |
| 12 | 2.53x |

根据阿姆达尔定律,对于这个小型构建,大约从8个处理器开始,最大加速比会趋于平稳。而实际的平稳状态还受到构建中只有13个可能任务的限制。

从构建结构来看,最多使用8个处理器。原因在于有5个任务(t1、t2、t4、t6和t7)可以无依赖地并行运行,另外有3组小的任务链(t3、t5和t8;t9和t10;t11和t12),每组每次使用一个处理器。构建任务t可以复用8个处理器中的一个,因为此时它们都处于空闲状态。

在实际应用中,像C和C++这类有链接步骤的语言,阿姆达尔定律会显著影响构建时间。通常,所有目标文件在链接步骤之前构建完成,然后需要运行一个(通常很大的)单一链接过程。这个链接过程往往无法并行化,成为构建并行化的限制因素。

2. 让 $(wildcard) 函数递归搜索

内置的 $(wildcard) 函数不是递归的,它只能在单个目录中搜索文件。不过,可以在 $(wildcard) 中使用多个通配符模式来搜索子目录。例如,$(wildcard/.c) 可以查找当前目录所有子目录下的所有 .c 文件。但如果需要搜索任意目录树,就没有内置的方法。

幸运的是,创建 $(wildcard) 的递归版本很容易,代码如下:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/18 11:01:28

便携式水质监测仪:多通信方式水质数据采集

便携式蓝绿藻分析仪属于电极法水质分析仪器,采用全数字电极检测方式,可对水质中的蓝绿藻参数进行检测。仪器搭载自研的 ftiot 操作系统,该系统基于 Linux-5.4 开发,同时支持电容触屏操作与按键操作。硬件配置上,其配备…

作者头像 李华
网站建设 2025/12/21 2:52:44

Kotaemon能否识别附件内容并纳入检索范围?

Kotaemon能否识别附件内容并纳入检索范围? 在企业知识管理日益智能化的今天,一个核心问题摆在开发者和业务决策者面前:当用户上传一份PDF、Word或Excel文件时,系统真的能“读懂”它,并在后续问答中准确引用其中的内容吗…

作者头像 李华
网站建设 2025/12/18 10:59:28

21、VR UI设计新范式:打造沉浸式体验

VR UI设计新范式:打造沉浸式体验 1. VR UI新范式的探索 在VR环境中,传统的大规模广告牌结构等UI范式并不适合游戏的太空科幻设定。更好的方法是将菜单集成到虚拟世界中,例如在驾驶舱中设置控件。对于具有“全知”或“上帝视角”的应用程序,可以将用户置于虚拟控制中心,菜…

作者头像 李华
网站建设 2025/12/18 10:58:39

基于微信小程序的校园电子考勤系统毕设源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。 一、研究目的 本研究旨在设计并实现一款基于微信小程序的校园电子考勤系统,以提升校园考勤管理的效率和准确性。具体研究目的如下: 首先&#xff0…

作者头像 李华
网站建设 2025/12/18 10:57:21

11、活动目录站点与复制管理操作指南

活动目录站点与复制管理操作指南 在企业网络环境中,活动目录(Active Directory,简称AD)的站点和复制管理对于确保网络服务的高效运行至关重要。合理地管理域控制器的位置、复制拓扑以及连接对象等,能够提升认证、复制和服务定位的效率。下面将详细介绍一系列活动目录站点与…

作者头像 李华
网站建设 2025/12/18 10:57:05

国产GPU第一股,挑战AI座舱

汽车芯片赛道,会诞生一匹新黑马吗?本周,备受瞩目的“国产GPU第一股”摩尔线程,发布首次公开发行股票并在科创板上市的发行结果公告。此前,公司预计IPO募集资金总额为80亿元。摩尔线程创始人张建中,曾担任英…

作者头像 李华