了解下JAVA的Java JVM设置对功能的影响
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。一台后端server,OS为Slackware8.1,装了tomcat4.1.30,近期在忙碌时代常常会逝世机,逝世状就是"java.lang.OutOfMemoryError:unabletocreatenewnativethread".是tomcat创立不了新的线程来应对哀求了。因而我搭了一个情况专门来测试这个成绩。内存为2G,CPU为四颗2.8G,tomcat4.1.30,写一个最复杂的JSP页面,以下:
代码
<%
try
{
Thread.sleep(30000);
out.println("fuck");
}catch(InterruptedExceptione){
e.printStackTrace();
}%>
然后开Jmetor来压,同时开jconsole来监测tomcat的情形,其实不断调剂XMX,XMS,XSS这三个参数,得出下表:
XMXXMSXSSdown时的tomcatthread数
500M500M128K642
800M800M64K485
1024M1024M64K374
1024M1024M128K374
1024M1024M512K371
依据该表,能够看出,随XMX,便是分派给JVM的内存数越年夜,tomcat所能开的thread数就越小,而Xss这个参数几近不影响任何测试了局。我料想tomcat开线程是利用linux的内存,而不是JVM的内存。当分派给JVM的内存越年夜,操纵体系所能用于分派的内存就越小,因而所能开的线程数就越小。
人人有甚么办理计划吗?岂非人人都没遇过这个成绩?我的假想是大概linux初始每一个历程(也就是tomcat开的线程)有一个初始巨细,这应当是一个内核参数来的,应当把它调小就能够了,但我不晓得如何往调。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页:
[1]