makefile - 模式规则与静态模式规则哪一个是有效的?
问题描述
我有一个疑问,如果我可以编写一个同时包含模式规则和静态模式规则的规则,哪个更好地写在另一个之上?
模式规则是否更快速高效?
如果静态模式规则中的静态目标列表过多,是否会降低性能?
解决方案
显式规则总是比隐式规则更快。隐式规则包括模式规则和后缀规则。静态模式规则,尽管名称似乎暗示它们是模式规则,但实际上并非如此:它们是显式规则(make 在内部为静态模式规则中的每个扩展目标生成单独的显式规则)。
确实,您拥有的静态模式目标越多,make 将使用的内存就越多,理论上,模式规则将允许 make 匹配模式,然后在配方完成后释放与其关联的内存,这可能会导致内存使用率降低,但我认为它必须是一个很大的数字才能抵消匹配模式规则所需的额外处理。
与往常一样,唯一确定的方法是在您的环境中对其进行测试。
但我怀疑静态模式规则会更快。
但是,对我来说,更重要的是可读性和灵活性……make
与编译器和链接器在构建中花费的时间相比,通常需要一点额外的时间。对于一些非常大和复杂的 makefile,这当然可能不是真的。
推荐阅读
- algorithm - 难以理解渐近符号
- swift - Swift 如何为使用 Firebase 投票的用户添加 5 星评分
- python - 欧拉计划 #37 问题
- php - 在 Woocommerce 购物车中显示特定产品 ID 的自定义缩略图
- javascript - 如何使用路由器/路由器参数将数据从一个父组件传输到另一个父组件
- java - 如何使用spring data mongodb获取每个用户的最新记录?
- r - eval 中的错误(predvars,data,env):找不到对象“下水道”
- sql - 从应用程序到 SQL 的 Azure 连接
- java - 如何管理未列出的新创建的按钮,Android Studios
- python - Pandas:将函数应用于特定的行值和索引