news 2026/5/30 16:25:46

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/5/29 18:37:09

Kotaemon跨界联名创意:品牌合作点子库

Kotaemon跨界联名创意:品牌合作点子库 在智能客服逐渐从“能说话”迈向“懂业务”的今天,越来越多企业发现,一个真正可用的AI助手,远不止是调用大模型生成几句回复那么简单。它需要理解上下文、引用真实知识、执行具体任务&#x…

作者头像 李华
网站建设 2026/5/27 5:33:54

如何通过Kotaemon实现用户行为数据分析?

如何通过Kotaemon实现用户行为数据分析? 在智能客服系统日益普及的今天,企业不再满足于“能回答问题”这一基础能力。越来越多的团队开始关注:用户到底在问什么?他们为什么会这样问?哪些问题反复出现?哪些服…

作者头像 李华
网站建设 2026/5/29 22:23:59

计算机视觉中的方向梯度直方图(HOG)

原文:towardsdatascience.com/histogram-of-oriented-gradients-hog-in-computer-vision-a2ec66f6e671 简介 方向梯度直方图最初由 Navneet Dalal 和 Bill Trigs 在他们 CVPR 论文[“方向梯度直方图用于人类检测”]中提出。 根据它关注的特征类型,如纹理…

作者头像 李华
网站建设 2026/5/24 5:52:33

在单个端点上托管多个 LLM

原文:towardsdatascience.com/hosting-multiple-llms-on-a-single-endpoint-32eda0201832 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2c603a8fe76e81bae1c68289871e0a57.png 图片来自Unsplash的**Michael Dziedzic 过去…

作者头像 李华
网站建设 2026/5/22 8:33:04

医疗问答系统开发利器:Kotaemon RAG框架实测

医疗问答系统开发利器:Kotaemon RAG框架实测 在医疗AI领域,一个看似简单的患者提问——“我有糖尿病,能吃西瓜吗?”——背后却藏着巨大的技术挑战。通用大模型可能会给出模棱两可的回答,甚至引用不存在的医学依据。而真…

作者头像 李华