我有一个Qt应用程序,目的是可视化工件。因此,我们正在使用Qt的OpenGL接口QGLWidget
。在此应用程序中,有时我们必须加载和可视化大量数据(3D中最多4GB的双点)。然后,应用程序变慢,但这无关紧要,因为性能并不是真正的问题。渲染一帧通常需要大约100毫秒。
我们要解决的问题如下: 此后,当程序创建大量数据并加载了数据时,通常需要大量RAM。从Visual Studio启动应用程序时,内存分配比“正常”启动时要快得多。
在任务管理器中,我看到,增加所需内存的速度非常不同。一个应用程序每秒可以分配1GB的内存,而另一个应用程序每秒只能分配50MB的内存。
我的问题是,从Visual Studio启动应用程序时有什么区别?两次,我们都使用VS的“ defaullt”发行版。什么会引发此类问题?如何确定这些问题的根源?
其他信息:此应用程序基于Qt5。此应用程序有10年的历史版本,使用Qt3和Qt4进行编程。我们不再有此应用程序的来源。使用Qt3 / 4时,我们不会解决这些问题。看来旧应用程序的行为是相同的,就像Qt5应用程序是从VS启动时一样。
我们正在使用Visual Studio 2015和Qt5.9.1
我跟踪了CPU使用率和内存使用率的时间:
您可以看到,第一个内存的增加比第二个要快得多。
答案 0 :(得分:1)
事实证明,您所看到的区别是,当连接调试器时,操作系统/调试器将锁定某些页面,以便调试器可以立即使用它们。这是一种特殊情况,因为您附加了调试器,一般不建议这样做。我相信没有快速解决方案-也许只是以不同的方式使用opengl。
另请参阅以下可能具有相同原因的答案:
C++/opengl application running smoother with debugger attached