﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Todd-随笔分类-eclipse</title><link>http://www.blogjava.net/Todd/category/44352.html</link><description>记住‘被遗忘者’的含义，我们既非生者也非死者，我们将被活着的和死去的人遗忘。&lt;br /&gt;我们回到了曾经告别的世界上，但是却永远无法回到我们曾经活着的那些日子，&lt;br /&gt;永远无法回到那些我们曾经爱过的人的身边。我们是存在也是诅咒，&lt;br /&gt;因此我们遗忘过去，并且被过去遗忘... </description><language>zh-cn</language><lastBuildDate>Wed, 19 Oct 2011 02:09:55 GMT</lastBuildDate><pubDate>Wed, 19 Oct 2011 02:09:55 GMT</pubDate><ttl>60</ttl><item><title>java heap space， PermGen space 错误 使用jvisualvm监测设置合理值</title><link>http://www.blogjava.net/Todd/archive/2011/10/18/361543.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Tue, 18 Oct 2011 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2011/10/18/361543.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/361543.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2011/10/18/361543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/361543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/361543.html</trackback:ping><description><![CDATA[使用myeclipse启动tomcat 报java heap space ，PermGen space 错误，分别为 heap内存不足，PermGen内存不足<br />需加大 tomcat启动项参数 Xmx 和&nbsp;XX:MaxPermSize<br />PermGen是指内存的永久保存区域，它用于存放class和 method 对象，以及String 对象<br />（sun原文：permanent generation is the area of the heap where class and method objects are stored. If an application loads a very large number of classes, then the size of the permanent generation might need to be increased using the -XX:MaxPermSize option. 
<div>Interned java.lang.String objects are also stored in the permanent generation. The java.lang.String class maintains a pool of strings. When the intern method is invoked, the method checks the pool to see if an equal string is already in the pool. If there is, then the intern method returns it; otherwise it adds the string to the pool. In more precise terms, the java.lang.String.intern method is used to obtain the canonical representation of the string; the result is a reference to the same class instance that would be returned if that string appeared as a literal. If an application interns a huge number of strings, the permanent generation might need to be increased from its default setting. </div>
<div>When this kind of error occurs, the text String.intern or ClassLoader.defineClass might appear near the top of the stack trace that is printed. </div>
<div>The jmap -permgen command prints statistics for the objects in the permanent generation, including information about internalized String instances. See 2.6.4 Getting Information on the Permanent Generation.</div>）<br />PermGen又是一个特殊内存区域：Classloader 加载的东东是不能回收的，它们放在PermGen中<br />（tomcat原文：Why does the memory usage increase when I redeploy a web application? Because the Classloader (and the Class objects it loaded) cannot be recycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually.）<br /><br />回到我的问题来，打开%java_home%bin\jvisualvm.exe&nbsp; (jdk6以上有)<br />查看tomcat的内存情况，点击tomcat标签下monitor , 当used heap&nbsp;= max heap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used PermGen = max PermGen 时tomcat还在启动中，一会就报错；<br />由于此前已经将myeclipse中server-&gt;tomcat-&gt;tomcatx.x-&gt;jdk的参数设置成-Xms64m -Xmx512m -XX:MaxPermSize=80m<br />但是monitor 画面中max heap为 256M<br />点击overview标签,发现jvm参数如下：<br />-Xms64m<br />-Xmx512m<br />-XX:MaxPermSize=80m<br />-Xms64m<br />-Xmx256m<br /><br />显然tomcat使用了最后的设置-Xms64m -Xmx256m；这个是在myeclipse的属性-》java-&gt;installed jres 中的vm启动参数里，双击默认启用的jre，把参数去掉或者设置成-Xms64m -Xmx512m<br />再回到server-&gt;tomcat-&gt;tomcatx.x-&gt;jdk中把-XX:MaxPermSize=80m修改为-XX:MaxPermSize=128m<br />保存后再启动tomcat，ok<br /><br />另外，使用jvisualvm持续监测tomcat内存情况发现heap区域的内存使用会在一个高峰后稳定降低，内存被回收了；<br />而PermGen区域的内存则是不断增加到达一个峰值后就不再增加，但之后此区的内存没有被回收，验证了上面的说法；<br /><br />多说两句：java的动态加载衍生出诸多框架，在空间上也暴露出问题，反射在时间上也存在效率问题：下面是组测试数据：<br />
<p>Java version 1.6.0_13<br />Java HotSpot(TM) Client VM<br />11.3-b02<br />Sun Microsystems Inc.</p>
<p>Direct access using member field:<br />&nbsp;47 125 47 46 46<br />&nbsp;average time = 66 ms.<br />Reference access to member field:<br />&nbsp;109 109 110 94 109<br />&nbsp;average time = 106 ms.<br />Reflection access to member field:<br />&nbsp;13094 12984 13063 13062 13094<br />&nbsp;average time = 13051 ms.</p>
<p>Java version 1.6.0_13<br />Java HotSpot(TM) Client VM<br />11.3-b02<br />Sun Microsystems Inc.</p>
<p>Direct call using member field:<br />&nbsp;47 31 109 109 31<br />&nbsp;average time = 70 ms.<br />Direct call using passed value:<br />&nbsp;16 16 16 31 15<br />&nbsp;average time = 20 ms.<br />Call to object using member field:<br />&nbsp;46 47 47 47 32<br />&nbsp;average time = 43 ms.<br />Call to object using passed value:<br />&nbsp;15 16 31 16 16<br />&nbsp;average time = 20 ms.<br />Reflection call using member field:<br />&nbsp;812 782 844 844 844<br />&nbsp;average time = 829 ms.<br />Reflection call using passed value:<br />&nbsp;938 953 954 1031 953<br />&nbsp;average time = 973 ms.</p>
<p>Java version 1.6.0_13<br />Java HotSpot(TM) Client VM<br />11.3-b02<br />Sun Microsystems Inc.</p>
<p>Direct Object creation:<br />&nbsp;62 47 78 32 93<br />&nbsp;average time = 63 ms.<br />Reflection Object creation:<br />&nbsp;125 94 94 109 187<br />&nbsp;average time = 121 ms.<br />Direct byte[8] creation:<br />&nbsp;125 187 94 172 94<br />&nbsp;average time = 137 ms.<br />Reflection byte[8] creation:<br />&nbsp;266 171 187 188 219<br />&nbsp;average time = 191 ms.<br />Direct byte[64] creation:<br />&nbsp;250 172 156 125 203<br />&nbsp;average time = 164 ms.<br />Reflection byte[64] creation:<br />&nbsp;281 219 203 203 219<br />&nbsp;average time = 211 ms.</p>华丽的上层需要坚实的底层基础<br /><br /><a href="http://wiki.apache.org/tomcat/FAQ/Deployment">http://wiki.apache.org/tomcat/FAQ/Deployment</a><br /><a href="http://download.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/memleaks.html#gbyuu">http://download.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/memleaks.html#gbyuu</a><br /><br /><img src ="http://www.blogjava.net/Todd/aggbug/361543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2011-10-18 22:16 <a href="http://www.blogjava.net/Todd/archive/2011/10/18/361543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse wtp tomcat webservice</title><link>http://www.blogjava.net/Todd/archive/2011/05/06/349652.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 05 May 2011 17:45:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2011/05/06/349652.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/349652.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2011/05/06/349652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/349652.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/349652.html</trackback:ping><description><![CDATA[<p>1.what's eclipse wtp </p>
<p>wtp(web tools platform )项目在eclipse平台上进行扩展，是一个开发j2ee web应用程序的工具集。wtp包含以下工具：</p>
<p>* 一个源码编辑器<a href="http://www.ssbbww.com/">www.ssbbww.com</a>用来编辑html, javascript, css, jsp, sql, xml, dtd, xsd, 和wsdl。</p>
<p>* 一个图形编辑器用来编辑xsd与wsdl。</p>
<p>* j2ee项目构建器和一个j2ee向导工具。</p>
<p>* 一个web服务创建向导和管理器，和ws-i 测试工具。</p>
<p>* 一个数据库访问，查询工具等。</p>
<p>wtp由两个子项目构成:wst(web标准工具集) 与jst(j2ee标准工具集)8ttt8 wtp是什么意思 是什么东西_什么叫-什么是wtp</p>
<p>wtp支付愿意原则，用于分析社会成员为项目所产出的效益愿意支付的价值。</p>
<p><br />
<br />
2.安装及工程创建发布：eclipse for java ee 里已经安装wtp,so不用咱们动手，eclipse 经典版安装wtp? <br />
工程的创建及发布<br />
见【传送门】：<a href="http://www.vogella.de/articles/EclipseWTP/article.html">http://www.vogella.de/articles/EclipseWTP/article.html</a><br />
<br />
3.wtp答疑见【传送门】<a href="http://wiki.eclipse.org/WTP_Tomcat_FAQ">http://wiki.eclipse.org/WTP_Tomcat_FAQ</a><br />
<br />
4.接着创建一个xfire webservice</p>
见 http://blog.csdn.net/xzmyzy/archive/2008/01/16/2047244.aspx <br />
http://blog.csdn.net/alex197963/archive/2009/07/20/4363328.aspx
<img src ="http://www.blogjava.net/Todd/aggbug/349652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2011-05-06 01:45 <a href="http://www.blogjava.net/Todd/archive/2011/05/06/349652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse failed to create the java virtual machine </title><link>http://www.blogjava.net/Todd/archive/2011/05/05/349640.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Thu, 05 May 2011 14:46:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2011/05/05/349640.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/349640.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2011/05/05/349640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/349640.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/349640.html</trackback:ping><description><![CDATA[<p>Q:装了新的jdk后，打开eclipse跳出failed to create the java virtual machine <br />
A:打开 $Eclipse_Home/eclipse.ini找到下面一行<br />
-Dosgi.requiredJavaVersion=1.5<br />
改成新装环境变量下jdk version<br />
-Dosgi.requiredJavaVersion=1.6<br />
<br />
reopen eclipse,ok!<br />
</p>
<img src ="http://www.blogjava.net/Todd/aggbug/349640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2011-05-05 22:46 <a href="http://www.blogjava.net/Todd/archive/2011/05/05/349640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 常用设置</title><link>http://www.blogjava.net/Todd/archive/2010/03/19/315929.html</link><dc:creator>Todd</dc:creator><author>Todd</author><pubDate>Fri, 19 Mar 2010 07:14:00 GMT</pubDate><guid>http://www.blogjava.net/Todd/archive/2010/03/19/315929.html</guid><wfw:comment>http://www.blogjava.net/Todd/comments/315929.html</wfw:comment><comments>http://www.blogjava.net/Todd/archive/2010/03/19/315929.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Todd/comments/commentRss/315929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Todd/services/trackbacks/315929.html</trackback:ping><description><![CDATA[<strong style="color: red">MyEclipse设置JSP页面默认编码方式： <br />
</strong><br />
windows(窗口)-Preferences(首选项)-MyEclipse-Files &amp; Editors-JSP-右侧encoding:设置为ISO10646/Unicode(UTF-8) <br />
<br />
<br />
<strong style="color: red">MyEclipse在Java文件中设置作者、日期等说明：</strong> <br />
windows(窗口)-Preferences(首选项)-Java-Code Style(代码样式)-Code Templates(代码模版)-右侧Comments(注释)-选择Types(类型)-点击edit(编辑)-输入如下信息 <br />
<br />
/** <br />
* @作者 Jcuckoo <br />
* @创建日期 ${date} <br />
* @版本 V 1.0 <br />
*/ <br />
<br />
点击OK(确定)-选中左侧的代码样式-选择右侧复选框(Automatically add Comments for new Methods and types)(自动为新方法和类型添加注释)-点击Apply(应用)-点击OK(确定) <br />
<br />
<br />
<br />
<span style="color: red"><strong>Eclipse在Java文件中设置作者、日期等说明： </strong></span><br />
windows(窗口)-Preferences(首选项)-Java-Code Style-Code Templates-右侧Comments-选择Types-点击edit(编辑)-输入如下信息 <br />
<br />
/** <br />
* @作者 Jcuckoo <br />
* @创建日期 ${date} <br />
* @版本 V 1.0 <br />
*/ <br />
<br />
点击OK-选中下面的复选框(Automatically add Comments for new Methods and types)-点击Apply-点击OK
<img src ="http://www.blogjava.net/Todd/aggbug/315929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Todd/" target="_blank">Todd</a> 2010-03-19 15:14 <a href="http://www.blogjava.net/Todd/archive/2010/03/19/315929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>