数独终局生(4)-------VS性能分析报告(已优化至4.646s左右)

性能分析报告点击调试->性能探查器进行性能分析
点击调试->性能探查器
1000时跑了1.043s
在这里插入图片描述
1w时跑了2.544s
在这里插入图片描述
10w时跑了15.433s,可以发现很慢了
在这里插入图片描述
100w时跑了2min19s,手机都刷了一圈了
在这里插入图片描述

分析100w的报告
点击报告中的main函数,发现调用的createSudokuFile函数占用时间最多98.32%
在这里插入图片描述
继续点击createSudokuFile函数,调用的newFromModel函数占用最多98.10%
在这里插入图片描述
继续点击newFromModel函数,发现to_string占用最多38.27%
在这里插入图片描述
发现问题
由于数组保存的int,再用运算符“+”拼接字符窜string结果是要转换成string,而使用to_string函数耗费了大量时间。现在考虑保存char,即把数组model与firstR都换成char型。改进后大大提升速度提升,100W耗时变成了2min19s变为48.721s,少了1min30s;可见to_string这个库函数还是避免使用.
在这里插入图片描述
当然,这比起宿舍大佬的6s还差得远呢
继续查看函数调用情况,发现字符窜的平接占用了大量时间。思考是否摒弃字符窜保存终局
在这里插入图片描述
优化至4.646s左右
在这里插入图片描述
有点不敢相信,检查一下参数是100W没错的。在上面的分析报告中,我们看到字符窜的的处理速度太慢,所一我直接摒弃了字符窜,改用用字符数组保存终局,100W提升了近十倍。
在这里插入图片描述
小结:
走了不少弯路,最开始没仔思考,用了字符窜保存结果,还用了效率低下的库函数to_string。
接着一步步优化,摒弃的int数组、库函数to_string,有了很大提升,最终摒弃了彻底摒弃了string,代码质量得到了巨大提升

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值