小程序网站开发太原,上海网站建设接单,wordpress用户密码重置,企业网站的建设流程包含哪些环节?很多用户都用UnixBench做性能测试#xff0c;并做厂商之间的对比#xff0c;那UnixBench到底做了哪些性能测试#xff0c;本篇从代码层面阐述UnixBench做了哪些测试。在细说UnixBench的实现之前#xff0c;先放一个总结果UnixBench算分介绍有类似结果#xff0c;然后一个个…很多用户都用UnixBench做性能测试并做厂商之间的对比那UnixBench到底做了哪些性能测试本篇从代码层面阐述UnixBench做了哪些测试。在细说UnixBench的实现之前先放一个总结果UnixBench算分介绍有类似结果然后一个个解释。 从结果可以看出结果分为两块一块为单进程一块为多进程多进程数目默认取决于CPU数目多进程的测试仅仅是增加了进程数目内存其实跟单进程一模一样所以下面的描述都是针对单进程的。Dhrystone 2 using register variables这里有比较详细的dhrystone介绍这个主要是测整数性能对应的浮点数测试是Double-Precision Whetstone。恕我眼拙那一坨运算实在不知所云于是上网搜了一堆文章,大意是可以通过编译优化提高性能不能真实反映CPU性能。这篇文章比较有典型意义Benchmarking in context: Dhrystone。那绕开里面一坨计算说下输出默认就是在10秒内那一坨计算能计算次数算出分数后参考前面篇UnixBench算分介绍算出Index分数。Double-Precision Whetstone既然有整数运算的CPU性能那么浮点数运算性能也希望有于是就有了whets.c 它的代码质量就高多了我终于读懂了。它需要得到一个合适的参数. 怎么得出这个运算呢有坨运算随着传入参数(xtra)变大耗时会逐渐增减当耗时增加到超过2秒时参数停止变大。如果跑10秒大概的参数会是怎样呢625*10/1.2383525047根据输入参数去计算结果之前一直没有说那一坨计算是什么总共分为8步英文解释还是比较清楚的采纳了其中的浮点数分数不过它的时间怎么把其他计算的时间也算在里面了既然只关心浮点数运算为什么还要加入N3N4N5N7N8这几步后续计算参考前面算法规则UnixBench算分介绍。Execl Throughput除了前面介绍的那两个比较复杂UnixBench其他的运算都比较简单Execl它的实际就是递归调用它主要利用的是execl函数。本身execl.c编译出来后的执行文件是execl的二进制文件execl函数执行的时候记录参数开始时间执行次数耗时(一般都是10秒)。当本次总执行时间耗时超过10秒时输出执行次数然后根据算分规则算分这个思想还是很巧妙的。File Copy这个主要是测试的write和read两个函数测试30秒。实现很简单,先写入一个文件2秒(循环写入)再读2秒然后从刚刚写入的文件读取数据写入到另一个文件循环写入在30秒的读写次数。 不同的参数测试测的是不同块大小不同块数的性能如果测试磁盘建议用FIO测试。Pipe Throughput打开一个管道往管道写入512个bytes再读出来测试10秒总共读写次数Pipe-based Context Switching打开两个管道开启两个进程其中一个进程往管道1写往管道2读另一个进程往管道2写往管道2读一个进程完成一次读写计数1。其中一个很有意思的事情如果这两个进程在同一个CPU和不同的CPU有完全不同的性能在同一个CPU下性能会好很多。这里有篇很细致的分析值得大家评阅Unixbench 测试套件缺陷深度分析Process Creation就是不停调用fork函数创建进程并立马退出成功一次计数1。Shell Scripts通过fork函数创建进程不停地执行一个脚本, 执行成功一次1. 所谓Shell Scripts (1 concurrent) 一个并发是指传递给脚本pgms/multi.sh 参数是1同样Shell Scripts (8 concurrent) 传递给脚本的参数是8同时8个子任务并发执行。System Call Overhead本意是想计算进入离开操作系统的开销进入离开一次计数1在10秒内的执行次数. 实际执行的效果是fork子进程waitpid函数后退出计数1上述把UnixBench的默认实现都介绍了下很简单但很有意思