我当前正在Windows 7 VM的Git Bash上执行脚本。在Mac机器上,相同的脚本会在15-20秒内执行,但是在Windows上运行需要将近1个小时。
该脚本本身包含从XML文件提取数据的包,并且不会调用任何API或任何种类的东西。
我不知道发生了什么,我尝试用以下答案解决它,但无济于事:
- https://askubuntu.com/a/738493
- https://github.com/git-for-windows/git/wiki/Diagnosing-performance-issues
我希望有人帮助我诊断或给出一些指示,以帮助我理解问题出在哪里或如何完全解决问题。
编辑: 我无法共享整个脚本,但是通过我在Stackoverflow上问过的先前问题,您可以看到该脚本使用的命令类型。本质上,混合使用了XMLStarlet个命令。
- https://stackoverflow.com/a/58694678/3480297
- https://stackoverflow.com/a/58693691/3480297
- https://stackoverflow.com/a/58080702/3480297
EDIT2: 作为一个高层次的概述,该脚本实际上循环了XML文件的文件夹,然后从每个文件中检索某些数据,然后创建HTML页面并将这些数据粘贴到表中。
这些步骤的代码分解如下:
搜索文件夹中的XML文件并遍历每个文件
for file in "$directory"*
do
if [[ "$file" == *".xml"* ]]; then
filePath+=( "$file" )
fi
done
for ((j=0; j < ${#filePath[@]}; j++)); do
retrieveData "${filePath[j]}"
done
从有问题的XML文件中检索数据
function retrieveData() {
filePath=$1
# Retrieve data from the revelent xml file
dataRow=$(xml sel -t -v "//xsd:element[@name=\"$data\"]/@type" -n "$filePath")
outputRow "$dataRow"
}
将数据输出到HTML表
function outputRow() {
rowValue=$1
cat >> "$HTMLFILE" << EOF
<td>
<div>$rowValue</div>
</td>
EOF
}
如前所述,用于检索相关数据的实际xml命令可能有所不同,但是,指向我之前的问题的链接具有不同的命令类型。