将 Mac OS 从 Mojave 更新到 Big Sur 后,bash 脚本运行非常慢

将 Mac OS 从 Mojave 更新到 Big Sur 后,bash 脚本运行非常慢

昨天,我将 MacBook Pro Mid 2015 从 Mac OS Mojave 更新到了 Mac OS Big Sur,今天我注意到用于对 C++ 程序进行压力测试的 bash 脚本运行起来非常慢。我的脚本运行以下代码:

#!/bin/bash

for i in {1..10000}; do
    echo "test $i"
    ./$3 > input
    ./$1 < input > wrong
    ./$2 < input > correct
    cmp --silent correct wrong || break
done

cat input
echo "correct :"
cat correct
echo "wrong :"
cat wrong

我用输出 1 的 C++ 程序运行了这段代码,但即便如此,它还是很慢。我不知道哪里出了问题,但在我更新系统之前,这段代码的运行速度快了 10 倍。我使用这个字符串编译我的 C++ 代码:

#!/bin/bash

g++ -Wall -Wextra -pedantic -std=c++17 -DLOCAL -O2 -Wshadow -Wconversion -fsanitize=address -fsanitize=undefined -fsanitize=bounds $1.cpp -o $1

有没有办法让这个脚本更快?

UPD:我的朋友建议运行此脚本而不在我的编译字符串中使用任何警告/清理选项,这就是我得到的结果:

# warnings & sanitizers are on
Olerinskiy:~ yan$ time ./a

real    0m0.078s
user    0m0.015s
sys     0m0.051s

# warnings & sanitizers are off
Olerinskiy:~ yan$ time ./a

real    0m0.003s
user    0m0.001s
sys     0m0.002s

这样可以吗?看起来这是问题所在,但我不记得更新前花了这么长时间。

相关内容