如何衡量我的代码质量?

前端之家收集整理的这篇文章主要介绍了如何衡量我的代码质量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些编码经验,但令我烦恼的最大问题之一是如何改进我的代码.

我每次都检查代码的复杂性,可读性和正确性,但我的问题是我如何测量特定命令的大小和时间.

例如:

当我有下一个问题:

A是整数

B是整数

C是整数

if – A越大,B指定C = A.

否则 – C = B.

对于这个问题,我们有2个简单的解决方案 –

1.使用if-else语句

2.使用三元运算符

为了在编译之前干燥检查文件的大小,我得到的是第二个解决方文件少于第一个半部分(对于1000000个操作,我得到一些MB的差异).

我的问题是我如何测量一些代码之间的时间差,这些代码执行相同的操作但是使用不同的命令,以及编译器对命令进行优化的程度与示例中的2相近.

解决方法

分析两种算法的时间复杂度.如果他们看起来很有竞

基准.

为您的问题提供足够大的输入,以便时间不受其他-OS-开销的影响.

开发两个解决相同问题的程序,但采用不同的方法.

我有一些方法Time measurements到时间代码.例:

#include <sys/time.h>
#include <time.h>

typedef struct timeval wallclock_t;

void wallclock_mark(wallclock_t *const tptr)
{
    gettimeofday(tptr,NULL);
}

double wallclock_since(wallclock_t *const tptr)
{
    struct timeval  now;
    gettimeofday(&now,NULL);

    return difftime(now.tv_sec,tptr->tv_sec)
            + ((double)now.tv_usec - (double)tptr->tv_usec) / 1000000.0;
}

int main(void)
{
    wallclock_t  t;
    double  s;

    wallclock_mark(&t);

    /*
     * Solve the problem with Algorithm 1
    */

    s = wallclock_since(&t);
    printf("That took %.9f seconds wall clock time.\n",s);
    return 0;
}

您将获得时间测量.然后,您可以使用“算法2”解决问题,并比较这些测量值.

PS:或者您可以检查每种方法的汇编代码,以获得更低级别的方法.

猜你在找的C&C++相关文章