首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随着时间的推移,C++代码运行速度变慢

随着时间的推移,C++代码运行速度变慢
EN

Stack Overflow用户
提问于 2013-01-31 10:47:03
回答 2查看 3.4K关注 0票数 3

我有一个很长的C++程序,由几千行代码,几个类,函数等组成。这个程序基本上是从输入文件中读取信息,运行算法,并将结果写入输出文件。

今天我意识到程序的运行时间经常会有很大的变化。所以我做了一个小测试,重新启动我的计算机,关闭所有其他可能的东西,并使用相同的输入文件连续运行代码5次。运行时间分别为50、80、130、180、190秒。

在这种情况下,我的第一个猜测是未删除的动态记忆。但我在整个代码中只使用了两次动态数组,而且我确信我删除了这些数组。

你们对此有什么解释吗?我正在Windows 7计算机上使用Visual Studio 2010。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 11:08:16

注意从visual studio调试器中运行程序,因为LFH (低碎片堆)内存分配器在这种情况下是禁用的。在VS外部试用该软件。

我见过这样的情况,任务通常需要几秒钟才能完成,仅仅从visual studio中运行就需要几个小时。

最重要的是,如果你仍然不知道发生了什么,那就分而治之吧。检测应用程序以查看子系统的运行时,或者只是将调试计时器放在不同的区域,以查看执行时间在哪里发生了巨大变化,并从那里深入。如果是内存分配器的问题,你通常会在释放数组的时候看到很大的运行时。

票数 3
EN

Stack Overflow用户

发布于 2013-01-31 11:50:15

您的代码在一个环境中运行,其中包括操作系统的状态、磁盘、网络、时间、内存、启动的其他进程等。

在相同的环境中执行相同的代码,每次都会得到相同的结果。

现在,你得到了不同的结果(执行时间)。如果您重复运行相同的可执行文件,那么周围环境中的某些东西正在发生变化。

现在,最明显的问题是:您的代码是否会引起对外部环境的更改?一个简单的例子是:它读入一个文件,更改数据,然后将其写回同一个文件。

你知道你的密码。只需使用此方法来隔离您的代码可能对其环境产生的任何影响,您就会找到原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14617645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档