首页 > 其他 > 详细

软件工程——数独 最终Release版本性能测试结果

时间:2020-01-18 18:09:51      阅读:83      评论:0      收藏:0      [点我收藏+]

测试环境

  • Windows10 64bit
  • Intel VTune Profile
  • AMD 2700x

sudoku.exe -c 1000000

生成1e6的数据量运行状况如下。

总用时

技术分享图片

 

 最耗时函数

技术分享图片

 

 

void copySudoku(const Sudoku& src, char* dst)
    {
        int k = 0;
        for (int i = 1; i < N_ROW_SUDOKU; i++)
        {
            for (int j = 1; j < N_ROW_SUDOKU; j++)
            {
                dst[k++] = src[i][j] + 0;
                dst[k++] =  ;
            }
            dst[k - 1] = \n;//行末无空格
        }
        dst[k++] = \n;
        p_start_buff += k;
        return;
    }
if (is_end)
        {
            if (h_sudoku_txt)
            {
                WriteFile(
                    h_sudoku_txt,
                    SudokuPrinter::buff,
                    SudokuPrinter::num_sudoku_in_buff * SudokuPrinter::num_bytes_of_sudoku - 2,//最后两个换行不写入,即最后一个数独后面没有空行
                    &written,
                    NULL
                );
                closeTxt();
            }
        }
        else
        {
            if (h_sudoku_txt)
                WriteFile(h_sudoku_txt,
                    SudokuPrinter::buff,
                    SudokuPrinter::num_sudoku_in_buff * SudokuPrinter::num_bytes_of_sudoku,
                    &written,
                    NULL
                );
        }

有效CPU利用率直方图

从下图可以看出生成数独环节CPU占用率并不高。

技术分享图片

 

 软件详细信息

程序占用内存仅为2MB

技术分享图片

 

 

 

sudoku.exe -s problem.txt

求解1e6的数独,每个数独至少30个空,分析如下:

运行时间

技术分享图片

 

 

最耗时函数

solveSudoku是求解数独的核心函数,也是占用时间最多的。

技术分享图片

 

 

 

CPU利用率

从下图可以看出CPU利用率并不是很高。

技术分享图片

 

 

软件详细信息

可以看出软件占用内存非常小,仅有4MB

技术分享图片

 

 

 

总结

综合看来,数独生成和求解算法还是相当高效的。其中读取和写入并没有占据太多程序时间。

软件工程——数独 最终Release版本性能测试结果

原文:https://www.cnblogs.com/harrypotterjackson/p/12209498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!