草庐IT

min-heap

全部标签

c++ - 我应该什么时候设置 GL_TEXTURE_MIN_FILTER 和 GL_TEXTURE_MAG_FILTER?

根据定义,GL_TEXTURE_MIN_FILTER在被纹理化的像素映射到大于一个纹理元素的区域时使用。假设我有一个分辨率为1024*768的纹理,我想将它映射到一个矩形。投影矩阵使用以下方法设置:glOrtho(0,1024,0,768,0,1);矩形设置为:glTexCoord2f(0.0f,0.0f);glVertex3f(0.0f,0.0f,0.0f);glTexCoord2f(1.0f,0.0f);glVertex3f(1024.0f,0.0f,0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f(1024.0f,768.0f,0.0f);glTe

c++ - GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 检查期间编译时出现 Protocol Buffer 错误

我目前收到一个错误,它指向protoc生成的头文件中的这些行:#if2006001但我的协议(protocol)版本与上面的版本匹配:protoc--versionlibprotoc2.6.1我做错了什么?最初我的protoc版本是3.0.0然后通过同步回2.6.1并执行这些步骤重新安装它;makedistclean,./configure,make,makeinstall安装所需的2.6.1版本。我需要旧版本,因为那是我们服务器中安装的版本。 最佳答案 问题是您系统上安装的header(在/usr/include/google/p

c++ - UINT_MIN 的可移植值是多少?

在limits.h中,有INT_MAX和INT_MIN(以及SHRT_*和LONG_*等)的#defines,但是只有UINT_MAX。我应该自己定义UINT_MIN吗?0(正零)是可移植值吗? 最佳答案 它是一个无符号整数-根据定义,它的最小可能值为0。如果你想要一些除了常识之外的理由,standard说:6.2.6.2IntegertypesForunsignedintegertypesotherthanunsignedchar,thebitsoftheobjectrepresentationshallbedividedinto

c++ - 为什么 C++ 标准库不包含 std::min、std::max 的非常量版本?

我依稀记得我在某个地方看到过关于这个的讨论,但我现在找不到了;“non-constminmaxc++”和类似的变体没有给出相关结果。为什么C++标准库不包含以下std::min的非常量重载(对于std:max也是如此)?templateT&min(T&a,T&b);有时它可能很有用,例如如果我想增加较低的数字:std::min(x,y)+=1;这个过载会导致什么问题吗? 最佳答案 这是由HowardE.Hinnant在N2199:"Improvedmin/max"中提出的,根据thisdiscussion被拒绝了。在同一次讨论中,霍

windows - !heap -s 在 windbg 中不显示不断增长的堆

我写了一个内存泄漏的应用程序-我过去做过以下事情找到泄漏的堆!heap-s检查堆!heap-stat-h查看分配的调用堆栈!heap-p-a为了获取调用堆栈,我将+ust添加到gflags虽然我过去在这方面取得了巨大成功,但!heap-s今天没有显示出任何增长吗?我不知道怎么了?就好像我的分配在堆中,对!heap-s是隐藏的?想法?我正在使用VisualStudio2010pro进行编译(x86和x64)。使用windbg调试 最佳答案 妙语——当分配小于1MB(默认)时,它们转到HeapAlloc(),当它们大于1MB时,它们转到

c++ - 视觉 C++ : possible to limit heap size?

我正在调试的应用程序有问题。稳态内存使用量为几百兆字节。有时(几个小时后)它会进入内存使用量飙升至数GB的状态。我希望能够在发生这种情况时立即停止程序。在控制通过我自己的代码的地方,我可以用这样的代码来捕获过多的内存使用:boolusingTooMuchMemory(){PROCESS_MEMORY_COUNTERSpmc;if(GetProcessMemoryInfo(GetCurrentProcess(),&pmc,sizeofpmc))returnpmc.WorkingSetSize>0x80000000u;//2GBworkingsetreturnfalse;}这对我没有帮助,

具有 "min"成员的类的 C++ 初始化列表

我见过一个类,其中有人将成员变量命名为min和maxclassA{public:A();~A();boolmin;boolmax;...};有一个构造函数A::A(){min=false;max=true;...}我尝试使用初始化列表重写它:A::A():min(false),max(true){}但是我收到了警告+错误warningC4003:notenoughactualparametersformacro'min'errorC2059:syntaxerror:')'因为min宏定义在WinDef.h在这种情况下是否可以在不重命名成员变量的情况下使用初始化列表?

c# - UWP 应用 : Process Memory Usage vs Heap Usage

我正在尝试在VisualStudio中分析我的UWP(通用Windows平台)应用程序,以查看导致我的进程内存使用率如此之高的原因。我一直在使用VisualStudio的内置诊断工具,但一直没有成功。它显示我的进程内存使用量为93兆字节,而堆显示为12.17MB,托管堆显示为1.56MB。在另一个实例中,我的进程内存使用率上升到大约458MB并且还在不断攀升,但是当我拍摄快照时,它没有告诉我应该导致它的任何对象的值,它声称使用的实际内存比进程内存少得多。我不确定我是否只是不了解探查器的工作原理,或者我只是在做一些完全错误的事情。 最佳答案

Windows 8 : Doing heap analysis on 32 bit application running through WOW64

首先,这不是关于如何进行堆分析的一般性问题,因为我在早期版本的Windows中对此非常熟悉。但我想知道的是,是否有人成功地对在64位Windows8上通过WOW64层运行的32位应用程序执行堆分析,Windows8是这里的关键词?运行Windows7和Windows调试工具我通常对WOW64层本身不感兴趣)。堆信息完美显示。在Windows8上,执行相同的过程,添加gflags并启动我的进程,启动后内存使用量从40MB增加到140MB,表明gflags已经启动。但是,无论我如何尝试,WinDbg或umdh都无法获取任何堆信息。在通过WOW64运行时,通过运行x64版本并将.effmac

windows - GFlags 设置以捕获堆损坏(Page Heap 除外)?

在一个生产站点上,我们的应用程序(*)反复崩溃,但无法重现。分析崩溃转储清楚地表明它是堆损坏:崩溃发生在不同的位置,但始终在kernel32!HeapFree/ntdll!RtlpLowFragHeapFree内访问冲突。WinDbg!analyze-v也报告堆损坏。到目前为止我们尝试的是使用GFlags运行应用程序选项PageHeap.问题是页面堆的内存开销使得应用程序将不再运行(达到32位进程的虚拟内存限制)。所以,我们不能使用页面堆。还有哪个flags添加将很有用,这样我们要么在腐败现场撞车或者至少可以从我们在HeapFree中崩溃时最终生成的故障转储中获取更多信息?我们目前正在