本人写了一个多线程的端口扫描应用程序,这个本来是在公司的电脑上跑得,4G内存,再加4G虚拟内存(内存交换空间),xp系统。在公司跑得时候还好好的,但是一拷贝到自己的电脑上跑的时候,结果发生了问题。
# # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 32756 bytes for ChunkPool::allocate # Possible reasons: # The system is out of physical RAM or swap space # In 32 bit mode, the process size limit was hit # Possible solutions: # Reduce memory load on the system # Increase physical memory or swap space # Check if swap backing store is full # Use 64 bit Java on a 64 bit OS # Decrease Java heap size (-Xmx/-Xms) # Decrease number of Java threads # Decrease Java thread stack sizes (-Xss) # Set larger code cache with -XX:ReservedCodeCacheSize= # This output file may be truncated or incomplete. # # Out of Memory Error (allocation.cpp:211), pid=15656, tid=7948 # # JRE version: 6.0_45-b06 # Java VM: Java HotSpot(TM) Client VM (20.45-b01 mixed mode, sharing windows-x86 )
------------------------------------------------下面是用google翻译的
#有针对Java运行环境继续内存不足。
#本机内存分配(malloc的)未能分配ChunkPool32756字节:分配
#可能的原因:
#该系统是出了物理RAM或交换空间
#在32位模式下,进程大小限制被击中
#可能的解决方案:
#减少内存系统上的负载
#增加物理内存或交换空间
#检查交换后备存储已满
#使用64位操作系统上的64位Java
#减少Java堆大小(-Xmx/-Xms)
#减少Java的线程数
#减少Java线程堆栈大小(- XSS)**********
#设置更大的代码缓存使用- XX:ReservedCodeCacheSize=
#这个输出文件可能被截断或不完整的。
#
#内存不足的错误(allocation.cpp:211),PID=3696,TID=3704
#
#JRE版本:6.0_26- B03
#Java虚拟机:的Java HotSpot(TM)客户端虚拟机(20.1- B02混合模式,共享窗口- X86)
----------------------------------------------------
针对这个问题,从网上找到了一个有关的解决办法:
-----------------------------------------------------------------------------------------
下面是摘抄网上关于JVM线程堆栈的相关内容:
JVM线程堆栈
应用程序中的每个线程都需要内存来存储器堆栈(用于在调用函数时持有局部变量并维护状态的内存区域)。每个 Java 线程都需要堆栈空间来运行。
根据实现的不同,Java 线程可以分为本机线程和 Java 堆栈。除了堆栈空间,每个线程还需要为线程本地存储(thread-local storage)和内部数据结构提供一些本机内存。
JVM堆栈大小
-Xss 128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆 栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。
在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一 个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
JVM heap与JVM私有内存、JVM线程堆栈大小间的关系及平衡。
线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时
时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会
出现内存溢出的错误.
-----------------------------------------------------------------------------------------
本人为了减少端口扫描所花费的时间,将线程的数量设置成了5000,在公司的电脑上跑得时候由于内存的数量足够多,而本人机子的内存不够分配,导致了上述的错误。将线程数改成3000后就没有了上面的错误。
多线程的应用中,最好不要分配超过3000个的线程。
相关推荐
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
实现必须考虑多线程高负荷执行环境,并消耗尽可能少的资源。 项目必须通过maven命令“ mvn clean package”构建,并通过命令“ java -jar test-1.jar”启动。 应用程序端口必须为8080。使用Java 8和Maven 3。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
这个 API 提供了对多个物理 USB 设备的多线程访问,并支持本机和远程设备。具有多个接口的设备可以同时被多个应用程序(或者设备驱动程序)所访问,其中每一个应用程序(或者设备驱动程序)都占据一个不同的接口。该 API...
互联网高并发相关名词页面浏览数〔page views 〕唯一身份浏览量〔Unique PageViews〕独立访问者数量〔unique visitors〕重复访问者数量〔repeat visitors〕每个访问者的页面浏览数〔Page Views per user〕高并发之前...
所以一定要结合系统的一些性能观察工具进行综合分析,比如netstat统计单位时间的发送包的数量,看是否很明显超过了所在网络带宽的限制;观察CPU的利用率,看系统态的CPU时间是否明显大于用户态的CPU时间。这些都指向...
public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用...
多个IP对应多个Web站点 如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意用于说明它的内容(比如为“我...
问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法: 1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量...
写入查询可以很好地扩展到服务器中硬件执行线程的数量。 读取查询永远不会互相阻塞。 可靠的。 Chronicle软件具有“混乱猴子”测试,该测试可在面对节点和网络故障的情况下验证Chronicle Map多主复制。 可以选择
(限制创建对象对象数量) 2. 怎么设计? 控制创建对象的数量 => 创建对象通过new 调用构造方法 => 控制构造方法就能控制创建对象 控制调用构造方法 => 用private修饰 => 需要给外部提供一个对象 =...
使用多个 UTL_FILE_DIR 参数即可指定多个目录。请注意所有用户均可读取或写入 UTL_FILE_DIR 参数中指定的所有文件。 值范围: 任何有效的目录路径。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级...
全面取消静态编译中的人为功能限制(此前有最多5个支持库同时参与静态链接等功能限制) 6. 公开易语言静态编译技术文档(参见sdk\static_docs),便于第三方支持库作者针对静态编译进行支持库改造 7. 修改以下多...
更多的特色:包含建议列表框(Suggestion listboxes)、停驻类浏览器(hovering class browser)、语法上色(syntax coloring)、访问最近应用的文件和符号等。 更好的文档:产品含有优秀的文档说明,选项对话框...
更多的特色:包含建议列表框(Suggestion listboxes)、停驻类浏览器(hovering class browser)、语法上色(syntax coloring)、访问最近应用的文件和符号等。 更好的文档:产品含有优秀的文档说明,选项对话框...
更多的特色:包含建议列表框(Suggestion listboxes)、停驻类浏览器(hovering class browser)、语法上色(syntax coloring)、访问最近应用的文件和符号等。 更好的文档:产品含有优秀的文档说明,选项对话框...
更多的特色:包含建议列表框(Suggestion listboxes)、停驻类浏览器(hovering class browser)、语法上色(syntax coloring)、访问最近应用的文件和符号等。 更好的文档:产品含有优秀的文档说明,选项...
如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql -uroot -p; mysql -uroot -pnewpassword; mysql mydb -u...
/\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格. /[^"] * / //匹配零个或多个非引号字符. 正则表达式的复制字符 字符 含义 ________________________________________________________...
如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令: mysql -uroot -p; mysql -uroot -pnewpassword; mysql mydb ...