Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 为什么连接调试器会使加速视频上下文的初始化速度变慢?_Windows_Debugging_Opengl_Direct3d - Fatal编程技术网

Windows 为什么连接调试器会使加速视频上下文的初始化速度变慢?

Windows 为什么连接调试器会使加速视频上下文的初始化速度变慢?,windows,debugging,opengl,direct3d,Windows,Debugging,Opengl,Direct3d,我注意到,当我启动一个程序,用OpenGL上下文设置两个不同的帧时,它几乎会立即正常打开,但如果在调试器下运行,上下文设置似乎每帧大约需要一秒钟。我在Delphi调试器和VisualStudio调试器中都看到了相同的效果,因此这似乎是一个一般性问题,而不是特定于一个IDE。我也听到过类似的报道,当加速视频系统基于D3D时,速度会减慢,这让我觉得它不是OpenGL特有的 有人知道为什么附加调试器通常会导致加速视频上下文的初始化速度非常慢吗?它只是初始化速度慢还是运行速度慢 我可以想象,它可能会加载

我注意到,当我启动一个程序,用OpenGL上下文设置两个不同的帧时,它几乎会立即正常打开,但如果在调试器下运行,上下文设置似乎每帧大约需要一秒钟。我在Delphi调试器和VisualStudio调试器中都看到了相同的效果,因此这似乎是一个一般性问题,而不是特定于一个IDE。我也听到过类似的报道,当加速视频系统基于D3D时,速度会减慢,这让我觉得它不是OpenGL特有的


有人知道为什么附加调试器通常会导致加速视频上下文的初始化速度非常慢吗?

它只是初始化速度慢还是运行速度慢

我可以想象,它可能会加载openGL或DirectX驱动程序的调试版本,并带有更多调试挂钩,这将花费更长的时间


而且,它也可能在软件驱动程序中运行更多的部件,而不是在硬件中运行-对于常规调试器来说,很难看到内置在图形芯片中的硬件加速功能中发生了什么

我在理解这个问题时有点困难,当我们谈论OpenGL/DirectX时,您所说的“上下文设置”到底是什么意思?在调试器下运行时,代码中的哪些特定调用似乎较慢?“上下文设置”是否会涉及到几个DLL的加载,这些DLL通过使用调试器(尤其是使用较新的Delphi IDE)进行监视并大大降低了速度


作为记录,我认为我从未在我的任何OpenGL(Delphi 7和更早版本)或Direct3D(Delphi 2009和更高版本)项目中遇到过您的问题

在调试器下运行时,将使用堆的特殊调试版本。这可能是你的程序慢下来的原因。更多详细信息,包括如何禁用它的说明

据我所知,它正在缓慢加载,但运行不慢。我认为调试器不必知道发生了什么。我不想追查它或任何东西;只要正常运行程序,上下文设置就会作为打开某个表单的一部分进行。我故意将术语定义得模糊,因为我不知道到底是什么原因导致了速度变慢。我不认为这是由于DLL加载时间。如果是这样,只有第一种情况会慢慢发生。但是我有一个组件,它在表单上嵌入了一个呈现上下文,我在几个不同的地方使用它,每次我打开其中一个表单时,如果渲染器在任何调试器中运行,它需要额外的1秒来设置,不管我以前是否初始化过其他渲染器。根据我自己的经验,我会说这不是调试器和OGL/D3D的一般问题,并且会责怪“组件”或您的环境(驱动程序/硬件/等等)。实际上,向我们展示代码(tm),或者向我们指出显示这种行为的呈现引擎。禁用调试堆是可行的。我不认为我需要它,因为我的程序是用Delphi编写的,Delphi有自己的带有调试功能的内存管理器。谢谢你给我指明了正确的方向!