我用JAVA做一个象棋引擎时遇到的问题

nzfghtk 2011-10-05 05:33:07
大家知道,象棋有非常复杂的数据结构和非常庞大的局面变化量,很少的步数就能产生成千上万种局面。
我的方法是,每碰到一个局面,我就用该一个数据结构来保存它,这个理论上好像没什么问题,局面少没事,但是局面一多,内存就溢出了。
分配内存的时候用的是CLONE方法,然后保存在LIST里面,因为每个局面都需要分析,不保存下来不行,但是内存溢出该用什么方案来解决呢,求高手指点。调JVM参数不行,那样程序都不动了。
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小绵羊 2011-10-05
  • 打赏
  • 举报
回复
持久化。
nj_dobetter 2011-10-05
  • 打赏
  • 举报
回复
一个方法:减小局面数据结构的大小,比如能用short表示的就不用int
打油的程序员 2011-10-05
  • 打赏
  • 举报
回复
内存一次性装载所有的棋谱是不可行的,只能用数据库或文件 存储棋谱了。

去高性能WEB开发版块提问。能够获得更详细的答案

http://topic.csdn.net/u/20110806/14/a642557c-24b5-4637-9321-5d0ef78a50d9.html?91246
molosoft 2011-10-05
  • 打赏
  • 举报
回复
学习中
sharme 2011-10-05
  • 打赏
  • 举报
回复
如果内存溢出话,个人建议序列化保存到文件中,如果需要时在读取文件,这样就数据重内存保存转移到硬盘保存了,希望可以帮你解决

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧