由一个程序异常终止问题学到的

      前段时间运行一个开源软件,运行了3个小时余便突然停止了,没有抛什么异常,仅仅是报告一个错误说程序异常终止 。我这可纳了闷,别人用起来好好的东西,一到我手里就出了问题,还一点线索都没有。后来问了师兄,了解了一些可能出错的原因:

       1、一个线程申请的内存空间过大,比如4G以上。对于32位机来说,寻址空间最大就到4G,所以单个线程不能申请如此之大的空间,否则,程序很容易出现错误。可怕的是,这类的错误是很隐蔽的;

      2、有些开源程序提供了对内存空间的参数设置,在运行耗内存的程序时别忘了考虑这些细节。

      不管最后的原因在不在这两个之内,但是,这些提示真是让人焕然大悟,一方面羞于自己与师兄在同一个领域的见识差距,另一方面感叹计算机专业不同方向之间微妙且又重要的联系。

      对于第一点,在平时的编程中几乎从未考虑过。现在接触到的越来越大、越来越复杂的数据量的信息处理,让我对相关知识的充电不得不尽早地提上日程。有一本书《深入理解计算机系统》是相当不错的,它让你能够从程序员的视角,看计算机系统!此书适用于那些想要写出更快、更可靠程序的程序员,很值得一看。

      第二点则在以前应用java的过程中印象特别深刻,明明在小测试集下运行正确的程序,换了一个大的测试集就抛出OutOfMemery的异常。后来上网找了答案,了解到JVM可以设置运行时内存参数。JVM初始默认的是256M的运行内存,一旦内存消耗高于这个数值,那么就会抛出相关的异常。在这个层面,许多的软件与之是相通的,希望大家在以后的程序员生涯里多多警惕!

      共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值