如何解决衡量比较两个解决方案的执行效率?
我想衡量针对同一问题的两种解决方案的效率。
我不需要在计算中包含任何环境“噪音”,我只是想知道以下哪些解决方案在完美世界中表现更好,即:哪些需要更多步骤来执行?
string a;
int b;
string c;
//SOLUTION A
c = a;
c = std::move(c) + ',' + std:to_string(b);
//SOLUTION B
c = a;
c.append(",").append(std::to_string(b));
我真的没有任何在这种小范围内测量执行时间的经验,所以我可能迷失在丛林中,抱歉,如果是这种情况。
解决方法
一种方法是对两种解决方案进行基准测试,例如与QuickBench。在图表中:
您可以看到第二种解决方案更快。但是,您的代码的执行时间也可能取决于您尝试连接的字符串的大小和数量,因此请考虑到这一点。我还建议对整个解决方案(无论您尝试实现什么)进行基准测试,而不仅仅是您的一行代码(此处:append vs operator+)。
您也可以尝试使用不同的编译器和不同的优化级别。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。