当前位置: 首页 > news >正文

CPU 测试脚本

CPU 测试脚本

Posted on 2025-09-28 18:23  大势趋007  阅读(0)  评论(1)    收藏  举报
#!/bin/bash# 冒泡排序算法测试 - CPU负载测试
# 兼容旧版本Bashbubble_sort() {local array_name=$1eval "local array=(\"\${${array_name}[@]}\")"local n=${#array[@]}for ((i = 0; i < n-1; i++)); dofor ((j = 0; j < n-i-1; j++)); doif [ ${array[j]} -gt ${array[j+1]} ]; then# 交换元素local temp=${array[j]}array[j]=${array[j+1]}array[j+1]=$tempfidonedone# 将排序后的数组赋值回原变量eval "${array_name}=(\"\${array[@]}\")"
}# 生成随机数组
generate_random_array() {local size=$1local array=()for ((i=0; i<size; i++)); doarray[i]=$((RANDOM % 10000))done# 返回数组元素echo "${array[@]}"
}# 主测试函数
run_test() {local array_size=${1:-1000}  # 默认数组大小,降低以避免过长时间local iterations=${2:-5}     # 默认迭代次数echo "=== Bash冒泡排序CPU负载测试 ==="echo "数组大小: $array_size"echo "迭代次数: $iterations"echo "开始时间: $(date)"echo "--------------------------------"local total_time=0for ((iter=1; iter<=iterations; iter++)); doecho -n "第 $iter 次迭代..."# 生成新数组local test_arraytest_array=($(generate_random_array $array_size))# 计时开始local start_time=$(date +%s)# 执行排序bubble_sort test_array# 计时结束local end_time=$(date +%s)local duration=$((end_time - start_time))echo " 完成 - 耗时: ${duration}秒"total_time=$((total_time + duration))# 小延迟,避免过热sleep 1doneecho "--------------------------------"echo "总耗时: ${total_time}秒"echo "平均耗时: $((total_time / iterations))秒"echo "结束时间: $(date)"echo "测试完成!"
}# 极简版本 - 如果上述仍有问题
simple_bubble_test() {echo "=== 极简冒泡排序测试 ==="echo "开始时间: $(date)"# 创建一个小数组进行测试arr=(5 3 8 4 2 9 1 7 6)echo "原始数组: ${arr[@]}"# 冒泡排序n=${#arr[@]}for ((i = 0; i < n-1; i++)); dofor ((j = 0; j < n-i-1; j++)); doif [ ${arr[j]} -gt ${arr[j+1]} ]; thentemp=${arr[j]}arr[j]=${arr[j+1]}arr[j+1]=$tempfidonedoneecho "排序后数组: ${arr[@]}"echo "结束时间: $(date)"
}# 检查Bash版本
check_bash_version() {local bash_version=${BASH_VERSION%%[^0-9.]*}echo "当前Bash版本: $bash_version"if [ $(echo "$bash_version >= 4.3" | bc -l 2>/dev/null) -eq 1 ]; thenecho "Bash版本支持高级特性"return 0elseecho "Bash版本较旧,使用兼容模式"return 1fi
}# 显示使用信息
show_usage() {echo "用法: $0 [选项]"echo "选项:"echo "  normal [大小] [次数]  正常测试模式"echo "  simple                极简测试模式"echo "  check                 检查Bash版本"echo "  help                  显示此帮助"echo ""echo "示例:"echo "  $0 normal 500 3       # 500元素, 3次迭代"echo "  $0 simple             # 极简测试"
}# 主程序
main() {case "$1" in"normal")if check_bash_version; thenrun_test "$2" "$3"else# 如果版本检查失败,使用更保守的参数run_test "${2:-500}" "${3:-3}"fi;;"simple")simple_bubble_test;;"check")check_bash_version;;"help"|"-h"|"--help")show_usage;;*)echo "使用默认参数运行测试..."if check_bash_version; thenrun_testelserun_test 500 3fi;;esac
}# 运行主程序
main "$@"

5add02c3-c5fa-4a91-ad07-8066f477f2bf