c++-C++多线程外部排序的程序报错 bad allocaltion

问题描述

C++多线程外部排序的程序报错 bad allocaltion

http://www.cnblogs.com/Jedimaster/archive/2013/11/17/3427761.html
按照这个网页给的方法,写多线程的外部排序算法。我先用第一个产生数据的算法 产生了429496729个int大小的数据。整个文件大概有1.59G这么大。然后分成4个进程,来处理数据。在main函数中,将iNumLocalItems设置为 20 * 1024 * 1024以及更小没有任何错误,但是大一点比如30 * 1024 * 1024时就会出现bad allocaltion的错误。实在不知道该怎么调试了,求大神帮助。iNumLocalItems应该就是网页中提到的每个Job的大小。

产生数据的的程序第一个参数 argv[0]是文件地址,第二个参数argv[1]是希望产生多少个int 我在实验中用的429496729。

主程序的main函数的参数argv[0]是刚才产生的数据地址,argv[1]是线程数,argv[2]是job的大小,这里用20*1024*1024的时候没有问题,再大了就会产生 bad allocaltion的错误,不会有任何文件输出。

到底怎么回事,不太会调试多线程的程序,还请各位大神指点。

解决方案

默认32bit的C++程序只能使用2GB内存。

时间: 2024-10-26 05:46:36

c++-C++多线程外部排序的程序报错 bad allocaltion的相关文章

lnk1120-vs2010运行程序报错:error LNK2019: 无法解析的外部符号

问题描述 vs2010运行程序报错:error LNK2019: 无法解析的外部符号 如题,我在vs2010环境下做C++练习题时出现该错误.程序代码如下: //array.h#ifndef ARRAY_H#define ARRAY_Htemplate<typename T>class Array{public: Array(int n);//数组首地址不用指定,待会分配 Array(Array &a); ~Array(); T getAt(int i);//返回第i个数组元素 voi

iis8-windows8.1 IIS8配置应用程序报错

问题描述 windows8.1 IIS8配置应用程序报错 windows8.1 IIS8配置应用程序,打开网站是提示 如下: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.AccessViolationException: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 源错误: 执行当前 Web 请求期间生成了未经处理

极光推送调试的程序报错

问题描述 极光推送调试的程序报错 极光推送调试的程序报错,不知道是什么原因,求解,谢谢 解决方案 定位到对应的源码行数分析 解决方案二: java.lang.ClassNotFoundException:java.lang.AutoCloseable 在加上异常是ClassNotFoundException 该类不存在 java.lang.AutoCloseable 这个类不存在

park serializable-Spark程序报错“Task not serializable”

问题描述 Spark程序报错"Task not serializable" 用java写的Spark程序在运行时报错"org.apache.spark.SparkException: Task not serializable",我在一个类里实现数据处理的功能,main函数定义在另一个类内部,在main函数中调用前一个类中的方法.虽然两个类都实现了Serilizable接口,但是还是无济于事.求大虾赐教!

mingw-Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招!

问题描述 Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招! 很简单的Hello World 程序,编译时提示: D:MinGWincludec++3.4.5bitscodecvt.h|475 这个文件中引用的 bits/codecvt_specializations.h 文件找不到 请问是哪里出了问题? ?

visual studio 2010-vs2010新建类库异常关闭,然后程序报错

问题描述 vs2010新建类库异常关闭,然后程序报错 电脑重装系统了,把之前的项目拷出来了.装完系统,装上vs2010项目打不开.DAL里面缺少DAL.dll.还有别的地方缺少.dll文件.重建项目,web文件没事,新建类库就出现问题,vs2010异常关闭.然后重新生成文件就提示"错误 1 源文件"E:CeShiCeShi11-10DALClass1.cs"未能打开("此实现不是 Windows 平台 FIPS 验证的加密算法的一部分.") DAL&quo

c#-C#仿QQ聊天的代码。在打开聊天窗口并输入聊天内容执行发送时,程序报错

问题描述 C#仿QQ聊天的代码.在打开聊天窗口并输入聊天内容执行发送时,程序报错 这是一段仿QQ聊天的代码.在打开聊天窗口并输入聊天内容执行发送时,程序报错: 参数化查询 '(@FromUserId int,@ToUserId int,@Message nvarchar(1),@MessageType' 需要参数 '@MessageState',但未提供该参数. 错误详细信息为: 未处理 System.Data.SqlClient.SqlException Message="参数化查询 '(@F

编译出错-用vs2013编译之前用vc++6.0写的程序报错

问题描述 用vs2013编译之前用vc++6.0写的程序报错 用vs2013编译之前用vc++6.0写的程序 以上是报错代码 错误 1 error MSB8021: The value '{0}' of the variable '{1}' is incompatible with the value '{2}' of the variable '{3}'. C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V120Microsoft.CppBuild.t

kernelbase dll-VC6.0程序报错dll异常

问题描述 VC6.0程序报错dll异常 MFC程序,运行时点击按钮报运行错误. 中断后启动调试,发现是在comip.h中执行_com_issue_error(hr)报错(FAILED(hr)成立). 错误信息:unhandled exception in *.exe(KERNELBASE.DLL)0xE06D7363:Microsoft C++ Exception 尝试去更新dll失败(提示文件被打开)