[测试] 规格指令 22 xcodebuild -showBuildSettings 重复执行多次
作者: lacostej创建于 2026年9月16日更新于 2026年9月16日
相接光谱运行的大约25%是重复的22个“xcodebuilding-showBuildSettings”指令。 曾两次试图去除,但都恢复了。 #30189的部分内容.
存档是因为没有尝试留下分枝或Pull Request,两者显然都是正确的,直到他们运行在一台干净的机器上. 测量出2026-09-10.
□奖
大约180个例子询问其构建设置的固定项目,每个项目运行“xcodebuilding - sshowBuildSettings” , 大约每秒运行一秒。 他们不是180个不同的问题:整个套房只问过7个固定项目,所以是相同的22个指令反复.
FastlaneCore:Project#building settings' 已经记住了‘building settings'的答案,但每个实例,每个实例都构建出新的项目',所以没有任何东西再利用过。
该份额大约是276s相继运行的70分,因此约为25%.
这很重要 两次。 每一个例子都是一个工人*+一个正在等待的xcodebuilding孩子, 所以去掉它们会减少有效过程的计数, 让平行的工人计数。 以下两次尝试改进了平行曲线和相继曲线。
早些时候所作的两项估计都过高,值得纠正,因为这些估计是通过衡量错误而得出的:
- “61%的示例时间在
requires xcodebuilding'文件中”是真实的,但这些文件也查询模拟器、运行xcodebuilding-list'和故意入睡。 - "这套套房在117年代运行,配有`FASTLANE-DISALLOW XCODEBUILD-SETTINGS-LOOKUP' set",但233个实例随后迅速失败并跳过其他工作。
□在哪里拦截
`快跑-核心/lib/快跑-核心/项目.rb:452':
鲁比 @ building setters = FastlaneCore::Project.run command(命令,超时:超时,重试:重试,打印:真)
`run command'是一种类方法,因此光谱助手可以在不触碰生产代码或任何光谱文件的情况下把它包起来。 这一点很重要:五个公开的拉拉请求放在一个呼叫站点重写本会触及的文件上,[#22069](https://GitHub.com/fastlane/fastlane/issues/22069)直接涉及`project.rb'。
只能拦截`展示建造安排'。 " fastlane-core/ spec/project-spec.rb:453 " 测试 " 运行命令 " 本身带有 " echo " 并故意暂停,这些测试必须避免炮击。
□尝试一号,记录固定装置。 尝试和回归
将每个命令的输出记录到“ fastlane core/ spec/fixtures/xcodebuilding settings” 并重放,刷新为“RECORDQQCODEBUILD SETTINS=1” 。 22个文件,768K。
基线 已录制
| -- -- -- -- -- -- -- -- -- -- -- -- --
-==YTET -伊甸园字幕组=- 翻译:
4名工人 75人 58人
12名工人 49名工人 36名工人
它打破了所有线人的工作。
构建设置将机器贯穿其中. 在1,548行产出中:60个查询出账路径,64个查询主目录,45个查询`/applications/Xcode-26.3.0.app'。 跑者有不同的退票路径
. . . . . . .内容来源: fastlane/fastlane