【发布时间】:2012-08-31 23:26:02
【问题描述】:
我编写了我的程序的 2 个版本,这是 C++ 中的进化算法。第一个版本是程序化的,运行良好且速度非常快。第二个版本完全是面向对象的,程序找到结果,但是非常非常慢(比第一个版本慢 10 倍)。有没有办法测量循环内代码段的时间或类似的东西?任何建议或想法都会有所帮助。 提前致谢。
【问题讨论】:
-
您使用的是哪个编译器/平台? Windows 上的 Visual Studio? Linux 上的 gcc?
-
这可能会有所帮助。如何在c中测量时间? stackoverflow.com/questions/3557221/how-do-i-measure-time-in-c
-
使用分析器是显而易见的答案,但我猜我会说你可能是在复制对象而不是通过引用或智能指针传递
-
在 C++ 中很容易犯这样的简单错误,在不经意间复制大量数据。在 C 语言中,您必须竭尽全力使用
memcpy结构。只需一次失误,您就可能一遍又一遍地丢下无数兆字节的数据副本。
标签: c++ windows performance algorithm visual-studio-2012