news 2026/4/23 18:04:36

16、构建与GNU Make的实用技巧与算术实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
16、构建与GNU Make的实用技巧与算术实现

构建与GNU Make的实用技巧与算术实现

在软件开发过程中,构建系统和GNU Make的运用常常会遇到各种问题与挑战,同时,借助GNU Make实现一些特殊功能也有其独特的方法。下面将详细介绍构建过程中的处理器使用、文件搜索、Makefile定位以及在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,每个任务链每次使用1个处理器;构建任务t可以复用8个处理器中的一个,因为此时它们都处于空闲状态。

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

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

GNU Make的内置$(wildcard)

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

Kotaemon多路召回策略设计:dense+sparse+colbert

Kotaemon多路召回策略设计:densesparsecolbert 在构建智能问答系统时,我们常常面临一个核心矛盾:大模型虽然能“说”,但未必“知道”。尤其是在企业级场景中,用户的问题往往涉及具体政策、产品条款或专业术语&#xf…

作者头像 李华
网站建设 2026/4/17 22:15:25

Kotaemon支持自定义评分函数:精细化控制生成质量

Kotaemon支持自定义评分函数:精细化控制生成质量 在金融、医疗和法律等高风险领域,一个看似流畅却暗藏错误的回答可能引发严重后果。传统大语言模型应用常陷入“生成即输出”的被动模式,缺乏对内容质量的主动把控机制。当企业级智能系统需要同…

作者头像 李华
网站建设 2026/4/19 1:29:37

创新驱动,生态兼容:狄耐克强势荣膺“智能家居领军品牌”

在2025年物联网产业大会暨第22届慧聪品牌盛会上,狄耐克荣膺“智能家居领军品牌”,彰显其在智能家居领域的卓越贡献与行业领先地位。通过持续的技术创新和生态融合,狄耐克实现了从传统“被动响应指令”到现代“主动智慧服务”的跨越式升级&…

作者头像 李华
网站建设 2026/4/23 11:36:20

MATLAB绘制分数阶三维四维混沌系统的吸引子相图,以及随阶次变化和随参数变化下李雅普诺夫指数...

MATLAB绘制分数阶三维四维混沌系统的吸引子相图,以及随阶次变化和随参数变化下李雅普诺夫指数谱图以及SE、C0复杂度,adomain分解法以及预估矫正法两种方法下随参数和随阶次变化的的分岔图,以及双参数影响下的复杂度图谱。 最近在折腾分数阶混…

作者头像 李华
网站建设 2026/4/22 19:43:32

使用 Python 进行预期改进和高斯过程回归的动手优化

原文:towardsdatascience.com/hands-on-optimization-with-expected-improvement-and-gaussian-process-regression-in-python-3c416eaa84f3 免责声明:高斯出生于 1777 年,他比我聪明得多。在我之前,很多人已经写过关于这个话题的…

作者头像 李华
网站建设 2026/4/18 10:28:25

I2C从入门到精通之四:I2C从设备的地址address

0,引言 在上一篇文章我们讲解了《I2C从入门到精通之三:I2C信号的特性和操作》,今天我们继续接着介绍I2C从设备的地址address。Master主设备没有地址,只有从设备才有地址address,地址address是区分不同从设备的唯一标识…

作者头像 李华