返回信息流为了挖掘数据,先前也写过很多代码,大多没出啥毛病,毕竟纯对象语言还是比较容易上手,在为了完成科研和实验的时候,并不太关注程序本身,重要的还是如何能快速达到研究目标。一直用Java很Happy,直到今天,杯具了。。。
一个网络仿真程序,服务器好歹也8G的内存,初一想,应该没有多大的问题吧,这下好了,一上手写了3天,各种debug好了,今晚一测试,1w个节点3G内存搞定,还挺快,换2w就有点胀了,压力测试10w节点out of heap space了,6500M的jvm还是不行。内存回收?置null,System.gc(),没用。
关键的问题是,不能自己控制内存释放,Java,伤不起啊,以后看来得慎重了,这次算是深刻的教训,怀念C/C++了。。。
这是一条镜像帖。来源:北邮人论坛 / java / #18020同步于 2011/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
以后写高性能程序要考虑慎用Java了。。。
michael2008
2011/4/26镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
OIOI
用java写仿真程序
【 在 michael2008 (Life is Magical) 的大作中提到: 】
: 为了挖掘数据,先前也写过很多代码,大多没出啥毛病,毕竟纯对象语言还是比较容易上手,在为了完成科研和实验的时候,并不太关注程序本身,重要的还是如何能快速达到研究目标。一直用Java很Happy,直到今天,杯具了。。。
: 一个网络仿真程序,服务器好歹也8G的内存,初一想,应该没有多大的问题吧,这下好了,一上手写了3天,各种debug好了,今晚一测试,1w个节点3G内存搞定,还挺快,换2w就有点胀了,压力测试10w节点out of heap space了,6500M的jvm还是不行。内存回收?置null,System.gc(
: 关键的问题是,不能自己控制内存释放,Java,伤不起啊,以后看来得慎重了,这次算是深刻的教训,怀念C/C++了。。。
: ...................
看你怎么用了 out of heap space 不是java的错 c++也一样会 如果说java比c++慢 那是肯定的 但是用不好 就不是java的错了
我认为这是程序设计的问题, 不是java的问题
计算机硬件是有限的资源, 在设计程序的时候你应该考虑这些问题, 不能肆无忌惮的使用存储,cpu这些资源
可能有两个问题:
1:存在内存泄露,将GC日志打印出来看看
2: 不存在内存泄露。一个节点的占用的内存就已经固定了。10W个需要的内存已不够。
看看是否简化数据结构,减少节点占用的内存大小。
或者 多台机器进行仿真。
【 在 michael2008 的大作中提到: 】
: 为了挖掘数据,先前也写过很多代码,大多没出啥毛病,毕竟纯对象语言还是比较容易上手,在为了完成科研和实验的时候,并不太关注程序本身,重要的还是如何能快速达到研究目标。一直用Java很Happy,直到今天,杯具了。。。
: 一个网络仿真程序,服务器好歹也8G的内存,初一想,应该没有多大的问题吧,这下好了,一上手写了3天,各种debug好了,今晚一测试,1w个节点3G内存搞定,还挺快,换2w就有点胀了,压力测试10w节点out of heap space了,6500M的jvm还是不行。内存回收?置null,System.gc(),没用。
: 关键的问题是,不能自己控制内存释放,Java,伤不起啊,以后看来得慎重了,这次算是深刻的教训,怀念C/C++了。。。
: ...................