




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java虚拟机报错常见情况(1) 、手动设置了JVM内存,但是由于主机配置的不同,可用内存有时高有时低,结果报错比如:主机内存2G,开了个jboss -500M,这时候可用内存是 15001、Oracle sqlDevolper 报错 jvm.dll今日升级 Oracle SQL developer为2.1。发生一个错误如图: 说明是虚拟机无法创建。根据以前eclipse出现过类似的问题推断应该是虚拟机参数设置有问题然后搜索Oracle SQL developer下所有的问题,看哪一个像是设置参数的。找到了这个文件 ide.conf这个文件位于安装路径下的ide文件夹下的bin里面。如图所示修改其中的AddVMOption属性参数如图:2、 JVM内存设置与查看1、设置环境变量set JAVA_OPTS= -Xms32m -Xmx512m可以根据自己机器的内存进行更改。2、设置Tomcat的JVM内存修改TOMCAT_HOME/bin/catalina.sh在“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行:JAVA_OPTS=-server -XX:PermSize=64M -XX:MaxPermSize=128m建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。3、 JVM相关网摘java.lang.OutOfMemoryError: Java heap space + myeclipse中分配tomcat启动时所占内存大小这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。跟据网上的答案大致有这两种解决方法:1、设置环境变量set JAVA_OPTS= -Xms32m -Xmx512m可以根据自己机器的内存进行更改。2、java -Xms32m -Xmx800m className就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名)这个解决问题了。而且执行的速度比没有设置的时候快很多。如果在测试的时候可能会用Eclispe 这时候就需要在Eclipse -run -arguments 中的VM arguments 中输入-Xms32m -Xmx800m这个参数就可以了。后来在Eclilpse中修改了启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。一、java.lang.OutOfMemoryError: PermGen spacePermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行:JAVA_OPTS=-server -XX:PermSize=64M -XX:MaxPermSize=128m建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。二、java.lang.OutOfMemoryError: Java heap spaceHeap size 设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98的时间是用于GC且可用的Heap size 不足2的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。解决方法:手动设置Heap size修改TOMCAT_HOME/bin/catalina.sh在“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行:JAVA_OPTS=-server -Xms800m -Xmx800m -XX:MaxNewSize=256m三、实例,以下给出1G内存环境下java jvm 的参数设置参考:JAVA_OPTS=-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true 很大的web工程,用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置:TOMCAT_HOME/bin/catalina.bat 中添加这样一句话:set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m如果要在myeclipse中启动,上述的修改就不起作用了,可如下设置:Myeclipse-preferences-myeclipse-servers-tomcat-tomcat.-JDK面板中的Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m 2/=使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space在JVM中如果98的时间是用于GC且可用的 Heap size 不足2的时候将抛出此异常信息。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。Heap Size 最大不要超过可用物理内存的80,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。=经过一个晚上的努力终于完成了一个文件替换指定字符串的程序,但是由于我要替换的全站程序html文件太多,所以eclipse下边老是在一个目录结束后报出java.lang.OutOfMemoryError: Java heap space的异常,然后就崩溃了。我一想肯定是频繁操作造成来不及回收,于是在每个循环之后加上一个Thread.sleep(1000),发现还是到那个目录下就死掉,于是把1000改成5000,还是到那里死掉,我想可能不是来不及回收这么简单,或许sun 的JVM里边刚好对于这种情况不释放也有可能。接着我又把启动的参数添上一个 -Xmx256M,这回就可以了。想一想,还是对于垃圾回收的原理不太了解,就在网上查了一下,发现了几篇不错的文章。/art/3539/20060314/476073_1.html/pcedu/empolder/gj/java/0509/701281.html还有:Java堆的管理垃圾回收提到一下几点,很不错,或许可以作为写程序时候的准则:(1)不要试图去假定垃圾收集发生的时间,这一切都是未知的。比如,方法中的一个临时对象在方法调用完毕后就变成了无用对象,这个时候它的内存就可以被释放。(2)Java中提供了一些和垃圾收集打交道的类,而且提供了一种强行执行垃圾收集的方法-调用System.gc(),但这同样是个不确定的方法。Java 中并不保证每次调用该方法就一定能够启动垃圾收集,它只不过会向JVM发出这样一个申请,到底是否真正执行垃圾收集,一切都是个未知数。(3)挑选适合自己的垃圾收集器。一般来说,如果系统没有特殊和苛刻的性能要求,可以采用JVM的缺省选项。否则可以考虑使用有针对性的垃圾收集器,比如增量收集器就比较适合实时性要求较高的系统之中。系统具有较高的配置,有比较多的闲置资源,可以考虑使用并行标记/清除收集器。(4)关键的也是难把握的问题是内存泄漏。良好的编程习惯和严谨的编程态度永远是最重要的,不要让自己的一个小错误导致内存出现大漏洞。(5)尽早释放无用对象的引用。大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为null,暗示垃圾收集器来收集该对象,还必须注意该引用的对象是否被监听,如果有,则要去掉监听器,然后再赋空值。就是说,对于频繁申请内存和释放内存的操作,还是自己控制一下比较好,但是System.gc()的方法不一定适用,最好使用finallize强制执行或者写自己的finallize方法。=tomcat遇到TOMCAT出错:java.lang.OutOfMemoryError: Java heap space,于是查了资料,找到了解决方法:If Java runs out of memory, the following error occurs:Exception in thread main java.lang.OutOfMemoryError: Java heap spaceJava heap size can be increased as follows:java -Xms -XmxDefaults are:java -Xms32m -Xmx128m如果你用win/tomcat/bin/catalina.bat 加上下面的命令:set JAVA_OPTS=-Xms32m -Xmx256m如果你用unix/linux/tomcat/bin/catalina.sh 加上下面的命令:JAVA_OPTS=-Xms32m -Xmx256m=原因:使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space在JVM中如果98的时间是用于GC且可用的 Heap size 不足2的时候将抛出此异常信息。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。解决办法:tomcat_home/bin下catalina.bat(win)或catalina.sh(linux)执行代码前加上:set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m=eclipse java.lang.OutOfMemoryError: Java heap space 解决方案=eclipse java.lang.OutOfMemoryError: Java heap space 解决方案eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无关。那么怎么才能设置某个程序的jvm大小呢(当然控制台运行的话不会存在这个问题,如:java -Xms256m -Xmx1024m classname,这样就可以把当前程序的jvm大小给设定)?因为eclipse里默认的一个程序的jvm配置为:-Xms8m -Xmx128m,所以我们的处理耗内存比较大时需要手动调整一下,以便不会内存溢出。具体的设置方法为:选中被运行的类,点击菜单Run as -Open Run Dialog.,选择(x)=Argument标签页下的vm arguments框里输入 -Xmx512m, 保存运行就ok了=Eclipse中java.lang.OutOfMemoryError: Java heap space错误2007-06-12 11:53java.lang.OutOfMemoryError: Java heap space错误在tomcat in的catalina.bat里加set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true256和512分别是MIN和MAX内存在eclipse中的windows-preferences.-tomcat-jvm.-jvm那一个文本框里,添加-Xms256m -Xmx512m这样就可以了!=Eclipse中VM设定方法 - - Tag:java.lang.OutOfMemoryError: Java heap space点击右键,选择run.,弹出窗口如下图,在vm输入框中填写合适的内存值即可。=eclipse中,黄线是警示。private Log log = LogFactory.getLog(AddCateAction.class);/小黄线在log上。这里的黄线是指你定义了私有变量log,但没有用到这个变量。v.add(o); /这时eclipse下面出现了一个小黄线,表示仍然被引用?这里是指add方法是不推荐的方法。OutOfMemoryError和怀疑的引用没有关系,可能是循环创建对象导致java内存不足。用参数指定java虚拟机的内存.java -Xms256m -Xmx1024m -XX:MaxPermSize=256M=2、如果在启动过程中出现内存溢出问题,抛出类似如下异常信息:java.lang.OutOfMemoryError: Java heap space可以尝试办法:A.修改Tomcat/bin/catalina.bat,添加如下内容set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true -XX:MaxPermSize=128MB.eclipse-windows-preferences.-tomcat-jvm.-jvm文本框里,添加-Xms256m -Xmx512mC.eclipse-preference-java-instal jres-edit,增加参数:-Xms256m -Xmx512m参考原因:JVM中如果98的时间是用于GC且可用的, Heap size不足2的时候将抛出此异常信息。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap Size 最大不要超过可用物理内存的80,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。=我的问题原因:使用Spring+Hibernate从数据库中读取大量数据,使用了单例模式的AppContext的getBean,内存中缓存了大量的Entity Bean目前仍没有有效解决办法,通过加大JVM内存大小,以及修改数据读取方式(如:只读取有用信息)缓解了一下。修改数据读取方式:例如一个EntityBean有如下字段:id, name, age, address, description。如果程序中只用到了此Bean的id和name字段,那么从数据库中只用读此两字段,而不是读取整个bean以及关联的Bean。3、JVM垃圾回收机制详解1. JVM的gc概述gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而大多数OLTP应用程序则注重整体效率。理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。1.1.引用计数引用计数存储对特定对象的所有引用数,也就是说,当应用程序创建引用以及引用超出范围时,jvm必须适当增减引用数。当某对象的引用数为0时,便可以进行垃圾收集。1.2.对象引用遍历早期的jvm使用引用计数,现在大多数jvm采用对象引用遍历。对象引用遍历从一组对象开始,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象。如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。在对象遍历阶段,gc必须记住哪些对象可以到达,以便删除不可到达的对象,这称为标记(marking)对象。下一步,gc要删除不可到达的对象。删除时,有些gc只是简单的扫描堆栈,删除未标记的未标记的对象,并释放它们的内存以生成新的对象,这叫做清除(sweeping)。这种方法的问题在于内存会分成好多小段,而它们不足以用于新的对象,但是组合起来却很大。因此,许多gc可以重新组织内存中的对象,并进行压缩(compact),形成可利用的空间。为此,gc需要停止其他的活动活动。这种方法意味着所有与应用程序相关的工作停止,只有gc运行。结果,在响应期间增减了许多混杂请求。另外,更复杂的 gc不断增加或同时运行以减少或者清除应用程序的中断。有的gc使用单线程完成这项工作,有的则采用多线程以增加效率。2.几种垃圾回收机制2.1.标记清除收集器这种收集器首先遍历对象图并标记可到达的对象,然后扫描堆栈以寻找未标记对象并释放它们的内存。这种收集器一般使用单线程工作并停止其他操作。2.2.标记压缩收集器有时也叫标记清除压缩收集器,与标记清除收集器有相同的标记阶段。在第二阶段,则把标记对象复制到堆栈的新域中以便压缩堆栈。这种收集器也停止其他操作。2.3.复制收集器这种收集器将堆栈分为两个域,常称为半空间。每次仅使用一半的空间,jvm生成的新对象则放在另一半空间中。gc运行时,它把可到达对象复制到另一半空间,从而压缩了堆栈。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。2.4.增量收集器增量收集器把堆栈分为多个域,每次仅从一个域收集垃圾。这会造成较小的应用程序中断。2.5.分代收集器这种收集器把堆栈分为两个或多个域,用以存放不同寿命的对象。jvm生成的新对象一般放在其中的某个域中。过一段时间,继续存在的对象将获得使用期并转入更长寿命的域中。分代收集器对不同的域使用不同的算法以优化性能。2.6.并发收集器并发收集器与应用程序同时运行。这些收集器在某点上(比如压缩时)一般都不得不停止其他操作以完成特定的任务,但是因为其他应用程序可进行其他的后台操作,所以中断其他处理的实际时间大大降低。2.7.并行收集器并行收集器使用某种传统的算法并使用多线程并行的执行它们的工作。在多cpu机器上使用多线程技术可以显著的提高java应用程序的可扩展性。1.4.1 JVM堆大小的调整Sun HotSpot 1.4.1使用分代收集器,它把堆分为三个主要的域:新域、旧域以及永久域。Jvm生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便获得使用期并进入旧域。在永久域中jvm则存储class和method对象。就配置而言,永久域是一个独立域并且不认为是堆的一部分。下面介绍如何控制这些域的大小。可使用-Xms和-Xmx 控制整个堆的原始大小或最大值。下面的命令是把初始大小设置为128M:java Xms128mXmx256m为控制新域的大小,可使用-XX:NewRatio设置新域在堆中所占的比例。下面的命令把整个堆设置成128m,新域比率设置成3,即新域与旧域比例为1:3,新域为堆的1/4或32M:java Xms128m Xmx128mXX:NewRatio =3可使用-XX:NewSize和-XX:MaxNewsize设置新域的初始值和最大值。下面的命令把新域的初始值和最大值设置成64m:java Xms256m Xmx256m Xmn64m永久域默认大小为4m。运行程序时,jvm会调整永久域的大小以满足需要。每次调整时,jvm会对堆进行一次完全的垃圾收集。使用-XX:MaxPerSize标志来增加永久域搭大小。在WebLogic Server应用程序加载较多类时,经常需要增加永久域的最大值。当jvm加载类时,永久域中的对象急剧增加,从而使jvm不断调整永久域大小。为了避免调整,可使用-XX:PerSize标志设置初始值。下面把永久域初始值设置成32m,最大值设置成64m。java -Xms512m -Xmx512m -Xmn128m -XX:PermSize=32m -XX:MaxPermSize=64m默认状态下,HotSpot在新域中使用复制收集器。该域一般分为三个部分。第一部分为Eden,用于生成新的对象。另两部分称为救助空间,当Eden 充满时,收集器停止应用程序,把所有可到达对象复制到当前的from救助空间,一旦当前的from救助空间充满,收集器则把可到达对象复制到当前的to救助空间。From和to救助空间互换角色。维持活动的对象将在救助空间不断复制,直到它们获得使用期并转入旧域。使用-XX:SurvivorRatio 可控制新域子空间的大小。同NewRation一样,SurvivorRation规定某救助域与Eden空间的比值。比如,以下命令把新域设置成64m,Eden占32m,每个救助域各占16m:java -Xms256m -Xmx256m -Xmn64m -XX:SurvivorRation =2如前所述,默认状态下HotSpot对新域使用复制收集器,对旧域使用标记清除压缩收集器。在新域中使用复制收集器有很多意义,因为应用程序生成的大部分对象是短寿命的。理想状态下,所有过渡对象在移出Eden空间时将被收集。如果能够这样的话,并且移出Eden空间的对象是长寿命的,那么理论上可以立即把它们移进旧域,避免在救助空间反复复制。但是,应用程序不能适合这种理想状态,因为它们有一小部分中长寿命的对象。最好是保持这些中长寿命的对象并放在新域中,因为复制小部分的对象总比压缩旧域廉价。为控制新域中对象的复制,可用-XX:TargetSurvivorRatio控制救助空间的比例(该值是设置救助空间的使用比例。如救助空间位1M,该值50表示可用500K)。该值是一个百分比,默认值是50。当较大的堆栈使用较低的 sruvivorratio时,应增加该值到80至90,以更好利用救助空间。用-XX:maxtenuring threshold可控制上限。为放置所有的复制全部发生以及希望对象从eden扩展到旧域,可以把MaxTenuring Threshold设置成0。设置完成后,实际上就不再使用救助空间了,因此应把SurvivorRatio设成最大值以最大化Eden空间,设置如下:java -XX:MaxTenuringThreshold=0 XX:SurvivorRatio50000 4.BEA JRockit JVM的使用Bea WebLogic 8.1使用的新的JVM用于Intel平台。在Bea安装完毕的目录下可以看到有一个类似于jrockit81sp1_141_03的文件夹。这就是 Bea新JVM所在目录。不同于HotSpot把Java字节码编译成本地码,它预先编译成类。JRockit还提供了更细致的功能用以观察JVM的运行状态,主要是独立的GUI控制台(只能适用于使用Jrockit才能使用jrockit81sp1_141_03自带的console监控一些cpu及 memory参数)或者WebLogic Server控制台。Bea JRockit JVM支持4种垃圾收集器:4.1.1.分代复制收集器它与默认的分代收集器工作策略类似。对象在新域中分配,即JRockit文档中的nursery。这种收集器最适合单cpu机上小型堆操作。4.1.2.单空间并发收集器该收集器使用完整堆,并与背景线程共同工作。尽管这种收集器可以消除中断,但是收集器需花费较长的时间寻找死对象,而且处理应用程序时收集器经常运行。如果处理器不能应付应用程序产生的垃圾,它会中断应用程序并关闭收集。分代并发收集器这种收集器在护理域使用排它复制收集器,在旧域中则使用并发收集器。由于它比单空间共同发生收集器中断频繁,因此它需要较少的内存,应用程序的运行效率也较高,注意,过小的护理域可以导致大量的临时对象被扩展到旧域中。这会造成收集器超负荷运作,甚至采用排它性工作方式完成收集。4.1.3.并行收集器该收集器也停止其他进程的工作,但使用多线程以加速收集进程。尽管它比其他的收集器易于引起长时间的中断,但一般能更好的利用内存,程序效率也较高。默认状态下,JRockit使用分代并发收集器。要改变收集器,可使用-Xgc:,对应四个收集器分别为 gencopy,singlecon,gencon以及parallel。可使用-Xms和-Xmx设置堆的初始大小和最大值。要设置护理域,则使用- Xns:java jrockit Xms512m Xmx512m Xgc:gencon Xns128m尽管JRockit支持-verbose:gc开关,但它输出的信息会因收集器的不同而异。JRockit还支持memory、 load和codegen的输出。注意 :如果 使用JRockit JVM的话还可以使用WLS自带的console(C:beajrockit81sp1_141_03bin下)来监控一些数据,如cpu, memery等。要想能构监控必须在启动服务时startWeblogic.cmd中加入Xmanagement参数。5.如何从JVM中获取信息来进行调整-verbose.gc开关可显示gc的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开- xx:+ printgcdetails开关,可以详细了解gc中的变化。打开-XX: + PrintGCTimeStamps开关,可以了解这些垃圾收集发生的时间,自jvm启动以后以秒计量。最后,通过-xx: + PrintHeapAtGC开关了解堆的更详细的信息。为了了解新域的情况,可以通过-XX:=PrintTenuringDistribution开关了解获得使用期的对象权。6.Pdm系统JVM调整6.1.服务器:前提内存1G 单CPU可通过如下参数进行调整:server 启用服务器模式(如果CPU多,服务器机建议使用此项)Xms,Xmx一般设为同样大小。 800mXmn 是将NewSize与MaxNewSize设为一致。320mXX:PerSize 64mXX:NewSize 320m 此值设大可调大新对象区,减少Full GC次数XX:MaxNewSize 320mXX:NewRato NewSize设了可不设。XX: SurvivorRatioXX:userParNewGC 可用来设置并行收集XX:ParallelGCThreads 可用来增加并行度XXUseParallelGC 设置后可以使用并行清除收集器XX:UseAdaptiveSizePolicy 与上面一个联合使用效果更好,利用它可以自动优化新域大小以及救助空间比值6.2.客户机:通过在JNLP文件中设置参数来调整客户端JVMJNLP中参数:initial-heap-size和max-heap-size这可以在framework的RequestManager中生成JNLP文件时加入上述参数,但是这些值是要求根据客户机的硬件状态变化的(如客户机的内存大小等)。建议这两个参数值设为客户机可用内存的60(有待测试)。为了在动态生成JNLP时以上两个参数值能够随客户机不同而不同,可靠虑获得客户机系统信息并将这些嵌到首页index.jsp中作为连接请求的参数。在设置了上述参数后可以通过Visualgc 来观察垃圾回收的一些参数状态,再做相应的调整来改善性能。一般的标准是减少fullgc的次数,最好硬件支持使用并行垃圾回收(要求多CPU)。4、去掉WPS的红色警告提示5、 Oracle远程exp导出exp dbo_zzedu/dbo_zzedu5/orcl file=E:/20130729_zzedu.dmp6、 DWZ汇总原理:dwz使用class样式来定义7、ocx控件控件在页面上定义的时候,引用必须写全路径,类似:object id=wb codebase=/cardshen/school/validateCard/zzEduCard.ocx width=0 height=0 type=application/supcan-plugin classid=clsid:39E96C93-7D65-487B-8583-967E71F84D3B 在服务器上需要进行注册 【这个识情况来定】regsvr32 xxx.dllregsvr32 xxx.ocx8、 JSTL标签使用9、Oracle常用查询语句(1) 、删除重复记录delete from xjxx where rowid in (select max(rowid) from xjxx group by xjzh having count(1) 1)(2) 、查询重复记录-1、select * from xjxx where xjzh in (select distinct(xjzh) from xjxx where xjzh in (select xjzh from (select xjzh, count(1) c from xjxx group by xjzh) where c1)group by xjzh) order by xjzh desc-2、select xjzh from xjxx group by xjzh having count(1)210、 Oracle针对一条记录的修改是同步锁机制,一个未完成之前,其他的全部处于等待状态下面是测试方法:打开三个plsql窗口,执行同样一条sql更新语句,可以看到11、Oracle优化策略在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1.表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=SCOTT;2.表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=SCOTT;3.表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;例如:SELECT EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=SCOTT;4.表明对语句块选择基于规则的优化方法.例如:SELECT EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=SCOTT;5.表明对表选择全局扫描的方法.例如:SELECT EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO=SCOTT;6.提示明确表明对指定表根据ROWID进行访问.例如:SELECT * FROM BSEMPMS WHERE ROWID=AAAAAAAAAAAAAAAND EMP_NO=SCOTT;7.提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效.例如:SELECT BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMSWHERE DPT_NO=TEC304 AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;8.表明对表选择索引的扫描方法.例如:SELECT FROM BSEMPMS WHERE SEX=M;9.表明对表选择索引升序的扫描方法.例如:SELECT FROM BSEMPMS WHERE DPT_NO=SCOTT;10.为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.例如:SELECT * FROM BSEMPMSWHERE SAL5000000 AND HIREDATESYSDATE;11.提示明确命令优化器使用索引作为访问路径.例如:SELECT SAL,HIREDATEFROM BSEMPMS WHERE SALV.AVG_SAL;20.对于有可合并的视图不再合并.例如:SELECT A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SALV.AVG_SAL;21.根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.例如:SELECT A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;22.将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.例如:SELECT BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;23.将指定的表与其他行源通过合并排序连接方式连接起来.例如:SELECT * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;24.将指定的表与其他行源通过哈希连接方式连接起来.例如:SELECT * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;25.强制与ORACLE所选择的位置不同的表进行查询执行.例如:SELECT * FROM BSEMPMS,DEPTBSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;26.将指定的表作为连接次序中的首表.27.当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端例如:SELECT EMP_NAM FROM BSEMPMS;28.当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端例如:SELECT EMP_NAM FROM BSEMPMS;29.直接插入到表的最后,可以提高速度.insert into test1 select * f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考公共课数量方法(二)-计算机应用基础参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)网络营销与策划-市场信息学参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)电子商务概论-电子商务案例分析参考题库含答案解析(5卷)
- 2025年学历类自考专业(电子商务)市场营销(三)-电子商务法概论参考题库含答案解析(5卷)
- 2025年学历类自考专业(法律)行政法学-行政法学参考题库含答案解析(5卷)
- 2025合同签订表模板
- 保育员岗位安全培训课件
- 保育员安全培训总结课件
- 2025年学历类自考专业(法律)-国际经济法概论参考题库含答案解析(5卷)
- 2025年学历类自考专业(工商企业管理)企业经营战略概论-国际贸易理论与实务参考题库含答案解析(5卷)
- 2025合作劳务外包协议范本
- 2025年燃气公司安全教育安全生产管理人员考试试卷(含答案)
- 2025年工会财务知识竞赛考试题库及参考答案
- 托管老师安全知识培训课件
- 2025年医疗器械网络销售监督管理办法培训试题及答案
- 医疗机构应急管理与急救技能手册
- 《急性肺栓塞诊断和治疗指南2025》解读
- 2025留置辅警笔试题库及答案
- 辽宁沈阳出版发行集团有限公司及所属企业招聘笔试题库及答案详解(新)
- 胸椎后纵韧带骨化症
- 2025年中级注册安全工程师《安全生产法律法规》十年真题考点
评论
0/150
提交评论