`
aigo
  • 浏览: 2568922 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

内存分配失败:std::bad_alloc at memory location 0x0013e0b8

 
阅读更多

最近在写一个压测工具,创建了2000个线程,每个线程中会new 1MB大小的空间,测试发现当线程创建到1800左右时程序就崩掉了,调试了下发现崩溃的位置是在new的时候,异常信息是:std::bad_alloc at memory location 0x0013e0b8。

 

网上找了下资料,说一般32位程序最大允许分配的内存不能超过2G,我的程序正好是32位的,2000个线程开满至少也要用掉2G,于是将程序版本切到64位版,运行通过!

 

 

分享到:
评论

相关推荐

    dma-alloc.rar_dma_alloc_memory

    在Linux内核中,DMA(Direct Memory Access)是一种...在`dma-alloc.c`源代码中,我们可以看到这些函数的具体实现细节,包括如何查找合适的内存,如何进行内存对齐,以及如何维护内核的数据结构来跟踪这些内存分配。

    sram-alloc.rar_ALLOC_memory

    SRAM-alloc.rar_ALLOC_memory这个压缩包文件主要涉及的是针对Blackfin处理器内核的SRAM内存管理算法和实现。Blackfin是一款由 Analog Devices 公司开发的数字信号处理器(Digital Signal Processor,简称DSP),广泛...

    rapidminer-lib1

    "RapidMiner-lib1" 是一个专门针对数据挖掘和机器学习领域的开发工具包,它在Java平台上运行。这个压缩包包含了一些核心组件和接口,为用户提供了丰富的功能和灵活性,特别适合进行毕业设计或者深入的数据挖掘研究。...

    cdev_alloc函数[归类].pdf

    两者在功能上无明显差异,只是内存分配方式不同,选择哪种方式取决于具体的驱动实现需求。 `cdev_alloc()`函数负责分配并初始化一个`cdev`结构体,使用`kzalloc`分配内存,并初始化`list`链表头。而`cdev_init()`...

    无法解析的外部符号”private: char * __cdecl cv::String::allocate(unsigned __int64)” (?allocate@String@cv@@AEAA

    1>—— 已启动生成: 项目: save-image, 配置: Release x64 —— 1>save-image-D435.obj : error LNK2001: 无法解析的外部符号 “private: char * __cdecl cv::String::allocate(unsigned __int64)” (?...

    Tensorflow2.0 之Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED问题

    tf.config.experimental.set_memory_growth(devices[0], True) ``` 这段代码会检查可用的GPU设备,并启用内存增长策略,让TensorFlow按需分配GPU内存,而不是一次性申请所有内存,从而避免了因内存不足引发的错误...

    mem_align.rar_memory_memory alloc

    内存分配(Memory alloc)是指程序在运行时向操作系统请求内存的过程,以便为变量、数据结构或对象分配存储空间。当涉及到特定的内存对齐(Memory align)时,这个过程变得更加复杂。 内存对齐是指在内存分配时确保...

    prom_alloc.rar_Free!

    `prom_alloc`可能是作者自定义的一个内存分配函数,而`free`则是C语言标准库提供的释放内存的函数。 内存分配通常分为静态分配、栈式分配和堆式分配。在这个场景下,我们关注的是堆式分配,即通过`malloc`、`calloc...

    C++面试试题2.docx

    new:返回对象的类型指针,分配失败抛出std::bad_alloc异常。 malloc:返回void*,需要进行强制类型转换,分配失败返回NULL。 释放内存: new:对应delete,调用析构函数并释放内存。 malloc:对应free,仅释放内存...

    reset_self.rar_BAD

    `bad_alloc`异常是C++标准库的一部分,当动态内存分配失败时,它会被抛出。处理这种情况通常有以下几种策略: 1. **重试分配**:可以捕获`bad_alloc`异常,然后尝试减少内存请求量或稍后再试。 2. **释放内存**:...

    stl_alloc.h(加注释)

    下载的stl_alloc.h源码,自己加了注释,有助于理解stl空间配置器

    dev stats_alloc-分配器包装器,可用于检测全局分配器-Rust开发

    stats_alloc用于Rust中全局分配器的工具中间件,用于测试验证有关分配模式的假设,以及stats_alloc用于Rust中全局分配器的工具中间件,用于测试验证关于分配模式的假设,并可能在生产负载中监视内存泄漏。...

    查找 EXC_BAD_ACCESS 问题根源的方法

    当出现 EXC_BAD_ACCESS 错误时,可以在终端中使用 `malloc_history` 命令来查看相关对象的内存分配历史记录。 - **命令格式**:`malloc_history ${App_PID} ${Object_instance_addr}` - **示例**:根据之前的...

    动态内存分配 的方法(C语言)

    文件`mem_alloc.c`和`mem_alloc.h`可能包含了实现这些概念的代码示例,比如自定义的内存分配器,它可能包含内存池管理、错误检测和记录等功能,以提供比标准库更安全、更高效的内存管理方案。阅读和理解这些文件将有...

    low_level_alloc.rar_arena

    在这个场景下,"low_level_alloc.rar_arena"可能是指一个关于低级别内存分配的实现,特别是与arena相关的内存管理策略。 在内存分配的领域,arena是一种优化内存分配效率的方法。它将大块内存预先分配并分割成多个...

    C++ 内存分配处理函数set_new_handler的使用

    C++编程语言提供了一种机制,当内存分配失败时能够自定义处理行为,这就是通过`set_new_handler`函数。这个函数允许程序员在new操作或new[]操作无法为对象分配内存时,指定一个回调函数来执行特定的操作。 ### 一、...

    dma-alloc.rar_dma_alloc

    比如,减少内存拷贝、避免不必要的映射操作,以及优化内存分配和释放的开销。 `dma-alloc.c`文件的源代码分析可能会涉及上述这些概念,深入理解这些细节可以帮助我们更好地优化和调试Linux内核对MN10300处理器上的...

    idx_alloc_indexalloc_源码.zip

    《深入解析idx_alloc_indexalloc_源码》 在IT领域,源码分析是提升技术水平、理解系统运行机制的重要途径。本篇文章将详细探讨"idx_alloc_indexalloc_源码"的相关知识,带你深入了解这个核心模块的功能、设计原理...

    Alloc_src1[1].zip_Alloc_src1_This Just In.._disk_memory test

    内存分配工具 Sometimes it is very helpful to test your applications in extreme situations like low resources, full hard disk, or low memory conditions. This tool covers just the last - memory. It ...

    idx_alloc_indexalloc_

    这种方式在处理高并发的索引请求时可能会成为性能瓶颈,因为链表操作通常涉及内存分配和指针操作,这些操作在高负载下可能会变得昂贵。 “idx_alloc_indexalloc_”描述的是一种新型的索引分配机制,它不再需要链表...

Global site tag (gtag.js) - Google Analytics