草庐IT

dynamic-memory-allocation

全部标签

Windows 8 : Unable to allocate 2GB with 3GB User Address Space

我正在尝试创建用于测试的Windows832位程序。测试包括大量分配,我遇到了麻烦。操作系统是用/3GB启动的,机器有8GB和一个页面文件,程序是用/LARGEADDRESSAWARE链接的,所以我不应该受到内存限制。(由于某些类型的定义方式-例如,size_t),使用32位程序进行测试对我来说很重要。问题是我无法从new或VirtualAlloc分配2GB(0x80000000)内存。new抛出bad_alloc并且VirtualAlloc返回NULL和ERROR_NOT_ENOUGH_MEMORY。在以前的Windows版本中,3GB地址空间意味着应用程序被赋予0x00000000

c++ - TabCtrl_InsertItem : do we need to keep memory of the text alive?

对于TabCtrl_InsertItem,我们需要保留pszTextmember指向有效内存还是操作系统会复制文本以便我们可以立即清除文本?TCITEMtcItem={TCIF_TEXT};CStringstrText;for(inti=0;i我们如何才能知道对于这个函数和future的其他函数哪个是正确的?我在MSDN中找不到它。 最佳答案 操作系统会将字符串复制到内部数据结构中。您不需要维护支持字符数组。您可以在函数调用完成后立即释放它。通常,任何接收字符串的WindowsAPI函数都是这种情况。没错,MSDN文档中没有明确说明

windows - 如何在 win32 进程中显示 'memory used' 的百分比?

我知道内存使用在Windows上是一个非常复杂的问题。我正在尝试为一个大型应用程序编写一个UI控件,该控件显示“已用内存百分比”数字,以便向用户表明可能是时候清理一些内存了,或者更有可能重新启动应用。一个实现使用MEMORYSTATUSEX的ullAvailVirtual作为基础,然后使用HeapWalk()遍历进程堆以寻找额外的空闲内存。HeapWalk()步骤是必需的,因为我们注意到在运行一段时间后,由堆分配和释放的内存从未返回并由ullAvailVirtual数字报告。经过数小时的密集工作,ullAvailVirtual数字不再准确报告可用内存量。然而,这种方法被证明并不理想,因

windows - 如何避免 "Your system is running low on virtual memory"弹出窗口?

我们的应用程序有时会使用大量内存,这是预料之中的。但是当我们在WindowsXP的高负载下测试它时,我们通常会看到非常烦人的“您的系统虚拟内存不足”弹出窗口,这会阻止我们的自动化、无人值守的测试运行...有没有可能不出现这个弹窗,直接让分配失败?该应用程序将优雅地处理它,并且测试将继续......我们使用的是WindowsXP,但如果解决方案只存在于更高版本中,我很乐意知道。 最佳答案 您可能会使用一种捕获该对话并将其取消的全局对话处理程序。QTP(HPQuickTestProfessional)具有GUI异常处理程序(或者它们叫什

c++ - 使用 log4cplus 运行代码时出现 bad_alloc 错误

我一直在尝试在我的PC上运行这个log4cplus示例:http://log4cplus.sourceforge.net/loglevel.html我使用VS2010创建了我的LogLevel项目,我使用的是log4cplusv1.1.0。我的程序编译正常,但是当我执行这一行时Loggerlogger=Logger::getInstance(LOG4CPLUS_TEXT("main"));我收到以下错误:Unhandledexceptionat0x75d5d3cfinLogLevel.exe:MicrosoftC++exception:std::bad_allocatmemoryloc

Windows 内存管理 : check if a page is in memory

在Windows中,有没有办法检查页面是在内存中还是在磁盘(交换空间)中?我想知道这一点的原因是,如果页面在磁盘中,则通过不访问该页面来避免导致页面错误。 最佳答案 据我所知,没有记录在案的方法可以在用户模式下完成此操作。也就是说,可以在内核模式下确定这一点,但这将涉及检查属于内存管理器的页表条目——这不是您在任何类型的生产代码中真正不想做的事情.您要解决的真正问题是什么? 关于Windows内存管理:checkifapageisinmemory,我们在StackOverflow上找到一

windows - 在 Windows 上尝试通过 SSH 连接到 Bitbucket 时出现 "Server refused to allocate pty"错误

我正在尝试将Mercurial连接到PC上的Bitbucket,这真的很难。我按照此处的说明操作:http://www.codza.com/mercurial-with-ssh-setup-on-windows我正在运行设置为我的私钥的选美。我在命令行输入了这个:plink-vhg@bitbucket.org我得到以下输出:C:\mypath>plink-vhg@bitbucket.org"skippedforbriefness"AccessgrantedOpenedchannelforsessionServerrefusedtoallocateptyStartedashell/com

c# - DPAPI 会自动执行 Dynamic Salt 吗?

我正在考虑使用Windows的数据保护API(DPAPI)来加密一些数据。我的一个要求是在加密值时使用动态盐。我通过测试注意到,如果我多次加密同一个字符串,我会得到不同的结果。这是使用相同的字符串、空熵值和相同的范围。这让我感觉好像已经包含了动态盐。我没有看到任何说明这一点的文档。这是我调用的方法https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.protecteddata.protect?view=netframework-4.7.2.DPAPI是否已经处理动态加盐?如果不是,是什么导致加

c# - 填充 TreeView 时出现 "Out of Memory"

当我使用XML填充TreeView层次结构时,我遇到了“内存不足”问题。我们的XML结构非常复杂,而且格式不固定。有多个级别的子节点。我正在使用递归来迭代XML并填充TreeView结构。我试着调用GC.Collect。清除内存但它仍然抛出相同的错误。我正在使用.NETFramework3.5的C#进行开发。如果您能帮我找到解决方案,我将不胜感激。我在下面提供了用于填充TreeView的代码privatevoidaddTreeNode(XmlNodexmlNode,TreeNodetreeNode){stringattribute="";treeView1.ImageList=imag

Windows Bash - Emacs 构建失败 : Memory Protection Enabled

我正在尝试在WindowsBash(WinBash?Win-Bash?)中编译emacs-24.4,但是遇到了一个问题,即Windows似乎启用了内存保护,这会破坏emacs构建。我在“make”之后得到的错误(./configure工作正常)是:Dumpingunderthenameemacs**************************************************Warning:YoursystemhasagapbetweenBSSandtheheap(25164600bytes).Thisusuallymeansthatexec-shieldorsome