我注意到当我启动一个用OpenGL上下文设置几个不同帧的程序时,它几乎会立即正常打开,但如果我在一个框架下运行它,则每帧的上下文设置似乎需要大约一秒钟调试器。我在Delphi调试器和Visual Studio调试器中看到了相同的效果,因此它似乎是一个普遍的问题,并不是特定于一个IDE。当加速视频系统基于D3D时,我也听说有类似减速的报告,这让我觉得它并不是特定于OpenGL。
有没有人知道为什么附加一个调试器会导致加速视频上下文一般很慢地初始化?
答案 0 :(得分:1)
在调试器下运行时,会使用堆的特殊调试版本。这可能会减慢你的程序速度。这里有更多细节,包括如何禁用它的说明。 http://msdn.microsoft.com/en-us/library/ff538841(v=VS.85).aspx
答案 1 :(得分:0)
它只是缓慢地初始化还是缓慢运行?
我可以想象它可能会加载一个调试版本的openGL或DirectX驱动程序与更多的调试挂钩,这将需要更长的时间。
它也可能在软件驱动程序而不是硬件中运行更多部件 - 对于常规调试器而言,查看图形芯片内置的硬件加速功能中发生的事情是非常棘手的!
答案 2 :(得分:0)
我在理解这个问题时遇到了一些麻烦,当我们谈论OpenGL / DirectX时,你的“上下文设置”究竟是什么意思?在调试器下运行时,代码中的哪些特定调用似乎更慢?可能是“上下文设置” 涉及加载多个DLL的 ,使用调试器监视和减慢很多,特别是使用较新的Delphi IDE?
为了记录,我认为我在任何OpenGL(Delphi 7及更早版本)或Direct3D(Delphi 2009及以上版本)项目中都没有遇到过您的问题。