代码覆盖率基准
测试算法
测试中使用的排序算法是 快速排序
。
源代码
#define SIZE 10000000 #define NB_TESTS 4 #include <stdio.h> #include <stdlib.h> #include <sys/times.h> #include <time.h> void sort (int array[],int size); main( ) { int i,t ; long duration[NB_TESTS]; long duration_val; clock_t starttime,endtime ; int *array; for (t=0;t<NB_TESTS;t++) { starttime=clock(); array=(int*)malloc(sizeof(int)*SIZE); for ( i = 0 ; i < SIZE ; i++ ) array[i]=(i*7)%SIZE; sort(array,SIZE); free(array); endtime=clock(); duration[t]=1000*((double)(endtime-starttime))/CLOCKS_PER_SEC; fprintf(stderr," %dms",duration[t]); } duration_val=duration[0]; for (t=1;t<NB_TESTS;t++) if (duration_val>duration[t]) duration_val=duration[t]; printf("%d",duration_val); } static void quicksort ( int array[], int low, int high ) { int pos ; if ( low < high ) { int item, i, j, t ; item = array[low] ; i = low ; j = high ; while ( i < j ) { while ( array[j] > item ) j = j - 1 ; while ( array[i] <= item && i < j ) i = i + 1 ; if ( i < j ) { t = array[i] ; array[i] = array[j] ; array[j] = t ; } } pos = j ; t = array[low] ; array[low] = array[pos] ; array[pos] = t ; quicksort ( array, pos + 1, high ) ; quicksort ( array, low, pos - 1 ) ; } } void sort (int array[],int size) { quicksort ( array, 0, size-1 ) ; }
基准
以下表格显示每项执行的基准(以毫秒为单位)。
编译器 | 常规执行 | 分支函数覆盖率 | 决策或行覆盖率 | 条件覆盖率 |
---|---|---|---|---|
GCC 无优化 | 6840ms | 8030ms (+17.3%) | 9400ms (+37.4%) | 9830ms (+43.7%) |
GCC 优化 -Os | 4160ms | 4430ms (+6.4%) | 6180ms (+48.5%) | 6360ms (+52.8%) |
GCC 优化 -O1 | 3530ms | 4250ms (+20.3%) | 5420ms (+53.5%) | 5970ms (+69.1%) |
GCC 优化 -O2 | 3950ms | 4040ms (+2.2%) | 5080ms (+28.6%) | 5320ms (+34.6%) |
GCC 优化 -O3 | 3860ms | 4030ms (+4.4%) | 5060ms (+31%) | 5230ms (+35.4%) |
以下表格显示基准数据(字节)。
编译器 | 本地编译 | 语句块或函数覆盖率 | 决策或行覆盖率 | 条件覆盖率 |
---|---|---|---|---|
GCC 无优化 | 2128 | 3452 (+1324) | 3996 (+1868) | 4052 (+1924) |
GCC 优化 -Os | 1940 | 3196 (+1256) | 3716 (+1776) | 3760 (+1820) |
GCC 优化 -O1 | 1968 | 3172 (+1204) | 3736 (+1768) | 3792 (+1824) |
GCC 优化 -O2 | 2100 | 3452 (+1352) | 4096 (+1996) | 4160 (+2060) |
GCC 优化 -O3 | 3544 | 3548 (+4) | 4364 (+820) | 4428 (+884) |
Coco v7.2.0©2024 The Qt Company Ltd.
Qt 及其相关标识是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均属于其各自所有者。