文档库 最新最全的文档下载
当前位置:文档库 › 最全的Eclipse 启动优化、内存优化

最全的Eclipse 启动优化、内存优化

最全的Eclipse 启动优化、内存优化
最全的Eclipse 启动优化、内存优化

最全的Eclipse 启动优化、内存优化

-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M

这里有几个问题:

1. 各个参数的含义什么?

2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?

3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?

下面我们一一进行回答

1. 各个参数的含义什么?

参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。

堆(Heap)和非堆(Non-heap)内存

按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。

堆内存分配

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx 指定,默认是物理内存的1/4。默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。

非堆内存分配

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由

XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

JVM内存限制(最大值)

首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM

内存的最大值跟操作系统有很大的关系。简单的说就 32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G- 2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。

2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?

通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:

1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;

2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。

3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?

那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?这是因为我们没有遵守eclipse.ini文件的设置规则:

参数形如“项值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:Javajre1.6.0binjavaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:

-vm

C:Javajre1.6.0binjavaw.exe

按照上面所说的,最后参数在eclipse.ini中可以写成这个样子:

-vmargs

-Xms128M

-Xmx512M

-XX:PermSize=64M

-XX:MaxPermSize=128M

实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。

另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的:

-showsplash

org.eclipse.platform

--launcher.XXMaxPermSize

256m

-vmargs

-Xms40m

-Xmx256m

其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。

3. 其他的启动参数。如果你有一个双核的CPU,也许可以尝试这个参数:

-XX:+UseParallelGC

让GC可以更快的执行。(只是JDK 5里对GC新增加的参数)

其实,Eclipse是一个可以进行非常灵活配置的系统,除了以缺省的方式启动以外,还可以指定各种参数来定制启动方式。在参考了一些资料之后,我总结了一些比较常用的启动时Command Arguments,如果有不正确的地方希望大家予以指出。

-arch [processor architecture]

描述:指定所使用的处理器的类别

举例:eclipse -arch x86或eclipse -arch sparc

-application [id]

描述:指定要运行的应用,id为扩展org.eclipse.core.applications扩展点的插件id加扩展id

举例:例如有个插件id为edu.sdu.app,扩展id为myapp,则eclipse -application edu.sdu.app.myapp,就会执行你的扩展应用

-clean

描述:清空插件缓存内容

举例:eclipse -clean,有时插件显示不出来是因为Eclipse将插件进行了缓存以加速启动过程,若指定此参数则会清空缓存,从头加载

-configuration [cofigfile location]

描述:指定配置文件的位置,在启动时使用此目录下的配置文件config.ini来启动

举例:eclipse -configuration d:/eclipse/configuration

-data [workspace location]

描述:指定启动时的Workspace位置

举例:例如Workspace位置设在D:/myworkspace,则eclipse -data D:/myworkspace

-debug [option file]

描述:以Debug状态启动Eclipse,所有的Debug开关在.options文件中指定

举例:eclipse -debug d:/eclipse/.options

-dev [classpath entry]

描述:以开发状态启动Eclipse,这会添加所有指定的路径作为每个插件的Classpath

举例:例如eclipse -dev bin,会将产生在bin目录下的所有类加载到类路径中,这在开发插件时非常有用

-nosplash

描述:指定启动时不显示闪屏

举例:eclipse -nosplash

-vm [jre path]

描述:指定启动时所使用的Java虚拟机

举例:例如要使用自己的Java虚拟机,则eclipse -vm

D:/j2sdk1.4.2_04/jre/bin/java.exe,这样还有一个好处,就是可以开启一个Console,能够显示控制台信息,当然若使用eclipse -vm D:/j2sdk1.4.2_04/jre/bin/javaw.exe则不会再显示控制台

-vmargs [Java VM arguments]

描述:指定启动时要使用的Java虚拟机参数

举例:例如要指定使用的内存容量,则eclipse -vmargs "-Xms256m -Xmx1024m"

注:此参数一定要放在所有参数变量的最后面

永久空间内存不足 https://www.wendangku.net/doc/8110762647.html,ng.OutOfMemoryError: PermGen space,相比不少使用spring,hibernate等一堆jar包的人都遇到过这个问题,在tomcat reload一个Context多次后,tomcat就挂掉了。

PermGen space这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。

我在做TMS的发布工具的时候,就遇到了问题,这个工具的目的是把一个相同的系统,在tomcat下自动的发布多份,但当卸载,重新发布多次后, tomcat就挂了,整个电脑如同死机一般。后来使用文章里的set JAVA_OPTS=-server -Xms800m -Xmx800m

-XX:PermSize=64M-XX:MaxNewSize=256m-XX:MaxPermSize=128m

-Djava.awt.headless=true 解决了问题,不过在2G的电脑上,我是把

-XX:MaxPermSize=128m 调到了-XX:MaxPermSize=256m。另外我还尝试了把所有的lib都放到tomcat的lib下,一些lib就不能在本项目中再出现了。

现在看,还是spring,hibernate之类的产生的类导致PermGen space空间不足造成的这些问题。

https://www.wendangku.net/doc/8110762647.html,/topic/80620?page=1 这个帖子里讨论了这个问题,有人做了些有益

的分析可以看看。

我又继续在我的笔记本上做了测试T42,1G内存。tomcat版本6.0.14。

set JAVA_OPTS=-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m

-XX:MaxPermSize=256m -Djava.awt.headless=true

这个配置反复发布是可以的,另外又一次测试了将项目下的jar包放到tomcat的lib下的对比。重新安装一个lib下为空的程序是10秒,否则是30秒。

tomcat 出现 OutOfMemoryError : PermGen space

最近在把在 tomcat 5.5 上开发的项目 deploy 到 JBoss 4.2 上时,在操作一段时间就会出现 https://www.wendangku.net/doc/8110762647.html,ng.OutOfMemoryError: PermGen space,开始以为是代码中存在死循环的地方造成这样的问题,但是后来发现,出问题的地方都是随机的,并不是某一处造成这样的问题出现,怀疑是内存泄露,通过增大 heap 内存的方法来尝试,依然不行,但是同样的问题却并没有在 tomcat 中出现过,难道是 JBoss 的问题?

在网上做了一番搜索得到一些相关的内容。

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile 的时候。

改正方法,在 run.bat 中加入:-Xms256m -Xmx512m -XX:MaxNewSize=256m

-XX:MaxPermSize=256m

因为项目中引用了很多的 jar 包,而这些 jar 包中的 class 信息会被 JBoss 的 class loader 加载到 PermGen space 区域,在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的,所以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。

另外,如果 heap 内存不足出现 https://www.wendangku.net/doc/8110762647.html,ng.OutOfMemoryError: Java heap space 时,可以通过 -Xmx512m 指定最大 heap 内存来解决这样的问题。

文章出处:

https://www.wendangku.net/doc/8110762647.html,/course/4_webprogram/jsp/jsp_js/2008510/114991.html

3 楼liudaoru 2009-03-06

JVM调优总结 -Xms -Xmx -Xmn -Xss

From:https://www.wendangku.net/doc/8110762647.html,/blog/174173

堆大小设置

JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0

下测试,最大可设置为1478m。

典型设置:

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k

-Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4

-XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0

-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

-XX:MaxPermSize=16m:设置持久代大小为16m。

-XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

回收器选择

JVM给了三种选择:串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集器。默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行判断。

吞吐量优先的并行收集器

如上文所述,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。典型配置:

java -Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC

-XX:ParallelGCThreads=20

-XX:+UseParallelGC:选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。

-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC

-XX:ParallelGCThreads=20 -XX:+UseParallelOldGC

-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k

-XX:+UseParallelGC -XX:MaxGCPauseMillis=100

-XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k

-XX:+UseParallelGC -XX:MaxGCPauseMillis=100 -XX:+UseAdaptiveSizePolicy

-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。

响应时间优先的并发收集器

如上文所述,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间。适用于应用服务器、电信领域等。

典型配置:

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC

-XX:+UseConcMarkSweepGC:设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此时年轻代大小最好用-Xmn设置。

-XX:+UseParNewGC:设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC

-XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection

-XX:CMSFullGCsBeforeCompaction:由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。

-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,但是可以消除碎片

辅助信息

JVM提供了大量命令行参数,打印信息,供调试使用。主要有以下一些:

-XX:+PrintGC

输出形式:[GC 118250K->113543K(130112K), 0.0094143 secs]

[Full GC 121376K->10414K(130112K), 0.0650971 secs]

-XX:+PrintGCDetails

输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs]

118250K->113543K(130112K), 0.0124633 secs]

[GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]

-XX:+PrintGCTimeStamps -XX:+PrintGC:PrintGCTimeStamps可与上面两个混合使用

输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]

-XX:+PrintGCApplicationConcurrentTime:打印每次垃圾回收前,程序未中断的执行时间。可与上面混合使用

输出形式:Application time: 0.5291524 seconds

-XX:+PrintGCApplicationStoppedTime:打印垃圾回收期间程序暂停的时间。可与上面混合使用

输出形式:Total time for which application threads were stopped: 0.0468229 seconds -XX:PrintHeapAtGC:打印GC前后的详细堆栈信息

输出形式:

34.702: [GC {Heap before gc invocations=7:

def new generation total 55296K, used 52568K [0x1ebd0000, 0x227d0000, 0x227d0000) eden space 49152K, 99% used [0x1ebd0000, 0x21bce430, 0x21bd0000)

from space 6144K, 55% used [0x221d0000, 0x22527e10, 0x227d0000)

to space 6144K, 0% used [0x21bd0000, 0x21bd0000, 0x221d0000)

tenured generation total 69632K, used 2696K [0x227d0000, 0x26bd0000, 0x26bd0000) the space 69632K, 3% used [0x227d0000, 0x22a720f8, 0x22a72200, 0x26bd0000) compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000) the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000) ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000) rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000) 34.735: [DefNew: 52568K->3433K(55296K), 0.0072126 secs]

55264K->6615K(124928K)Heap after gc invocations=8:

def new generation total 55296K, used 3433K [0x1ebd0000, 0x227d0000, 0x227d0000) eden space 49152K, 0% used [0x1ebd0000, 0x1ebd0000, 0x21bd0000)

from space 6144K, 55% used [0x21bd0000, 0x21f2a5e8, 0x221d0000)

to space 6144K, 0% used [0x221d0000, 0x221d0000, 0x227d0000)

tenured generation total 69632K, used 3182K [0x227d0000, 0x26bd0000, 0x26bd0000) the space 69632K, 4% used [0x227d0000, 0x22aeb958, 0x22aeba00, 0x26bd0000) compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000) the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000) ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000) rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000) }

, 0.0757599 secs]

-Xloggc:filename:与上面几个配合使用,把相关日志信息记录到文件以便分析。

常见配置汇总

堆设置

-Xms:初始堆大小

-Xmx:最大堆大小

-XX:NewSize=n:设置年轻代大小

-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5

-XX:MaxPermSize=n:设置持久代大小

收集器设置

-XX:+UseSerialGC:设置串行收集器

-XX:+UseParallelGC:设置并行收集器

-XX:+UseParalledlOldGC:设置并行年老代收集器

-XX:+UseConcMarkSweepGC:设置并发收集器

垃圾回收统计信息

-XX:+PrintGC

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

-Xloggc:filename

并行收集器设置

-XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。

-XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间

-XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)

并发收集器设置

-XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。

-XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

四、调优总结

年轻代大小选择

响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。

吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度。因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用。

年老代大小选择

响应时间优先的应用:年老代使用并发收集器,所以其大小需要小心设置,一般要考虑并发会话率和会话持续时间等一些参数。如果堆设置小了,可以会造成内存碎片、高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间。最优化的方案,一般需要参考以下数据获得:

并发垃圾收集信息

持久代并发收集次数

传统GC信息

花在年轻代和年老代回收上的时间比例

减少年轻代和年老代花费的时间,一般会提高应用的效率

吞吐量优先的应用:一般吞吐量优先的应用都有一个很大的年轻代和一个较小的年老代。原因是,这样可以尽可能回收掉大部分短期对象,减少中期的对象,而年老代尽存放长期存活对象。

较小堆引起的碎片问题

因为年老代的并发收集器使用标记、清除算法,所以不会对堆进行压缩。当收集器回收时,他会把相邻的空间进行合并,这样可以分配给较大的对象。但是,当堆空间较小时,运行一段时间以后,就会出现“碎片”,如果并发收集器找不到足够的空间,那么并发收集器将会停止,然后使用传统的标记、清除方式进行回收。如果出现“碎片”,可能需要进行如下配置:

-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩。

-XX:CMSFullGCsBeforeCompaction=0:上面配置开启的情况下,这里设置多少次Full GC 后,对年老代进行压缩

2 楼liudaoru 2009-03-06

jvm调优

https://www.wendangku.net/doc/8110762647.html,/course/3_program/java/javajs/2008630/129292.html

1 楼liudaoru 2009-03-06

在JDK 1.6.0_03下

-Xms应该是达到此值.jvm开始进行垃圾回收,而且此值应该是jvm的初始大小

而实际上在1.6下.jvm一启动.就会分配-Xmx大小的内存

所以在jdk 1.6下

xms应该是控制何时进行内存垃圾回收的参数

xmx应该是jvm的初始大小.同时也是jvm可用heap的最大值.

UBOOT命令详解

常用U-boot命令详解(z) 2010-09-30 15:05:52| 分类:学习心得体会|字号订阅 U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,在我编译的 U-boot-2009.11中的命令行模式模式下支持“Tab”键的命令补全和命令的历史记录功能。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。 [u-boot@MINI2440]# version U-Boot 2009.11 ( 4月04 2010 - 12:09:25) [u-boot@MINI2440]# v U-Boot 2009.11 ( 4月04 2010 - 12:09:25) [u-boot@MINI2440]# base Base Address: 0x00000000 [u-boot@MINI2440]# ba Base Address: 0x00000000 由于U-boot支持的命令实在太多,一个一个细讲不现实,也没有必要。所以下面我挑一些烧写和引导常用命令介绍一下,其他的命令大家就举一反三,或者“help”吧! (1)获取帮助 命令:help 或? 功能:查看当前U-boot版本中支持的所有命令。 [u-boot@MINI2440]#help ?- alias for'help' askenv - get environment variables from stdin base - print or set address offset bdinfo - print Board Info structure bmp - manipulate BMP image data boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootelf - Boot from an ELF image in memory bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol

小学语文分层教学经验总结 实施分层教学 优化教学环节

小学语文分层教学经验总结 二郎坝小学杜春艳 我们学校属于乡镇学校,家庭教育的差异较大,给教育教学带来了较多的困难。尤其是课堂教学,如果采用“齐步走”的方法,“吃不饱”和“难消化”的现象就会日益突出。而在班级授课中实施“面向全体,分层施教”的分层教学法,把班级教学、分组教学和个别教学三者有机地结合起来,扬其长而避其短,即能最大限度地克服过去班级授课制中的种种弊端,尽可能地让学生的个性、特长得以最充分的发展,使“不同的人学到不同的知识”、“人人都学到必需的知识”。我考虑到学生中存在的差异程度,综合考虑每个学生的智力、非智力等因素,运用模糊学的方法,把全班学生分为短期性的(即处于发展变化状态而短期内又相对稳定的)a、b、c三个层次,并依据群体学生的差异,区别对待地制定分层教学目标,采取分层施教、进行分层评价,并有针对性地加强对不同层次学生的学习指导,从而大面积提高教学质量。 1、面对有差异的学生,实施有差异的教学,促使每个学生在不同基础上得到提高与发展。 2、形成一种便于操作的分层区别教学的模式。 3、通过好、中生的相互协作,培养学生的合作精神和自主创新能力。通过对学困生的直接教学和个别辅导,消灭“陪读”现象,更好地补差、防差,实现面向全体学生,全面提高教育质量的素质教育要求。通过分组区别教学的教改实验,提高学生的学习成绩。改变以

往教学目标要求统一的状况,针对同一班内不同层次,不同学习水平的学生,有时我设计不同层次的教学目标,使教学目标指向每一个学生的“最近发展区”,具体可分为: a、最低限度的课程标准,教材要求。 b、标准、教材的全部基本要求。 c、对课程标准、教材基本要求的适当提高、加深。鼓励不同层次学生在达成本学习领域共同性目标后,选择高一层次的目标进行学习,用不断递进的分层目标来引导和要求学生,使教学要求和学生可能性的关系,始终处于动态协调之中。 4、教学分层过程 改变传统班级授课的课堂教学组织形式,采用“合——分”式教学结构,既有面向全体的“合”,双有兼顾各组的“分”。保证在一节课内既有统一的讲解、答疑、矫正、小结,也有分组的教学、自学、合作学,还有分层次的练习和个别指导。其基本模式是“合”(激趣入题、明确目标)——“分”(学习新知、巩固练习)——“合“(反馈口授,课堂小结)——“分”(课内作业,巡视指导)。“分”学的结构,可借鉴复式教学的经验,采用动、静交替的形式进行,要注意“分”而不“离”,“合”而不“死”。 5、练习作业分层次 不同组别完成不同程度的作业。 a组学生完成基本题。 b组学生完成基本题加综合题。

Eclipse使用设置、性能调优

Eclipse使用设置、性能调优 eclipse调优 一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善。 加快启动速度 1.在eclipse启动的时候,它总是会搜索让其运行的jre,往往就是这个搜索过程让eclipse启动变慢了。(没设置时,等2-3s出现进度条,设置后直接出现进度条) 只要在eclipse.ini中加入-vm的参数就可以了 2.取消所有启动时要激活的插件(在用时激活也一样)和其它的相关的在启动时执行的操作。

3.关闭自动更新

减少jvm内存回收引起的eclipse卡的问题 这个主要是jvm在client模式,进行内存回收时,会停下所有的其它工作,带回收完毕才去执行其它任务,在这期间eclipse就卡住了。所以适当的增加jvm申请的内存大小来减少其回收的次数甚至不回收,就会是卡的现象有明显改善。 主要通过以下的几个jvm参数来设置堆内存的: -Xmx512m 最大总堆内存,一般设置为物理内存的1/4 -Xms512m 初始总堆内存,一般将它设置的和最大堆内存一样大,这样就不需要根据当前堆使用情况而调整堆的大小了 -Xmn192m 年轻带堆内存,sun官方推荐为整个堆的3/8 堆内存的组成总堆内存= 年轻带堆内存+ 年老带堆内存+ 持久带堆内存年轻带堆内存对象刚创建出来时放在这里 年老带堆内存对象在被真正会回收之前会先放在这里 持久带堆内存class文件,元数据等放在这里 -XX:PermSize=128m 持久带堆的初始大小 -XX:MaxPermSize=128m 持久带堆的最大大小,eclipse默认为256m。如果要编译jdk这种,一定要把这个设的很大,因为它的类太多了。 我的配置(2g内存的笔记本): 还有其它的相关参数可以看看下面的参考材料,很有启发的: -XX:+UseParallelGC 使用并发内存回收 -XX:+DisableExplicitGC 禁用System.gc()的显示内存回收 eclipse.ini -startup plugins/https://www.wendangku.net/doc/8110762647.html,uncher_1.3.0.v20120522-1813.jar --launcher.library plugins/https://www.wendangku.net/doc/8110762647.html,uncher.win32.win32.x86_1.1.200.v20120522-1813

QJR 软启动说明书

QJR系列 矿用隔爆兼本质安全型软起动器 使 用 说 明 书 上海佳洲防爆电器有限公司

使用前请认真阅读本说明书 本说明书根据GB9969.1《工业产品使用说明书总则》;GB9969.2《机电产品使用说明书编写规定》的有关规定要求和内容进行编制。 产品执行Q/JZ001-2011、MT/T943-2005和GB3836-2000等标准。 一、概述 1、产品特点 矿用隔爆兼本质安全型软起动器(以下简称软起动器)是机电一体化的新技术产品,该产品适用于交流380V、660V、1140V的电压异步电动机重负荷软起动,在正常运转状态下对电机进行各种保护。它具有起动电流小,起动速度平稳可靠,保护功能齐全,是我公司自行设计、开发的高技术产品。在矿用隔爆兼本质安全型真空电磁起动器的基础上,改直接起动或停止为软起动或软停止,降低了起动电流(由4Ie-7Ie改善为0.5Ie-4Ie可调),减少了起动时冲击电流对电网及负载的冲击。它用软件控制方式来平滑起动电机,一方面以软件控强电,另一方面使电动机转速由慢到快逐渐上升到额定转速,有效解决了直接起动或自耦降压起动、Y/Δ转换、降压起动造成的起动时瞬时电流尖峰冲击,起动二次冲击电流对负载产生冲击转距,当电网电压下降可能造成电机堵转等诸多问题,是传统的矿用隔爆本质安全型真空电磁起器的理想替代产品。 该产品采用全中文宽屏显示、并具有漏电闭锁、断相、过压、欠压、、过载、三相不平衡、短路等保护功能,并能储存相应的故障信息,以及运行电流,电压故障等工作状态信息。 2、主要用途及适用范围 本起动器主要用于有甲烷和煤尘爆炸环境的煤矿井下、露天煤矿、冶金矿山、港口码头、选煤厂、发电厂等对重负荷的运输设备实行软起动。 起动器可以就地、远距离起动、停止控制,及联机控制等多种方式;额定电压为1140V、660V、380V,频率是50Hz,额定电流在400A范围内的三相异步电机,起动方式可以是软起动,也可以像普通的磁力起动器一样直接带负荷起动。机壳外有隔离换向开关手柄,可以对电机的转向进行选择,必要时按下急停按钮,转动隔离换向手柄至分位置,直接分断电动机。 3、规格 电压等级:1140V、660V、380V。 电流等级:400A以下。 4、型号的组成及代表意义 Q J R-□/□ 额定电压:V 额定电流:A 软起动 隔爆兼本质安全型 起动器 5、软起动器的防爆型式与标志为:矿用隔爆兼本质安全型

EPC项目经验总结

EPC工程总承包管理经验小结 EPC工程总承包管理的本质是要充分发挥总承包商的集成管理优势,需要总承包商强大的融资和资金实力、深化设计能力、成熟的采购网络,以及争取施工技术精良的专业分包商的资源支持和有效监控等。 工程总承包出发点是以项目整体利益为出发点,通过对设计、采购和施工一体化管理,对共享资源的优化配置、大型专用设备的提供以及各种风险的控制为项目增值,从而获取更多的利润。 工程总承包管理的核心内容就是工程的设计(或深化设计)、采购、施工以及调试验收的管理. EPC模式的特点其实也就是他的出发点,就是获取更多的利润,EPC模式也是成功实施BT、BOT项目的基础,带有融资性质的BT、BOT项目中的B 就等于EPC,只有通过EPC模式经历了建设项目从规划设计到竣工验收交付的全过程管理,才能够真正掌握项目建造的全部成本要素。施工总承包项目只给承包商提供了发挥施工技术优势的空间,承建商只是通过施工方案优化控制项目建造的很有限的部分成本要素,毕竟施工过程只是整个建设过程的一个环节,因此他的作用也是有限的。对EPC工程总承包项目而言,更加重要的是总承包商有机会通过把握设计优化机会以及EPC的一体化降低整个工程的建造成本并保证建筑产品的质量。 操作过程中分为施工前的准备和施工过程的工作几个主要步骤: 施工前的准备: 1:工程总承包模式 *2:总包商的融资策略与项目资金管理 3:工程总承包投标策略 *4:工程总承包的商务谈判与合同管理 施工过程的工作: ☆1:工程总承包的深化设计管理 ☆2:工程总承包中的分包商管理 3:工程总承包项目的风险管理 ☆4:工程总承包的采购管理 5:总承包的组织管理体系 我局承建了省水电设计院总承包的泵站更新改造工程,在实际生产过程中,由于都是第一次按照这类型承包方式,虽然双方都本着不断探索、互相学习的精神顺利圆满的完成了施工任务,但过程中暴露许多问题和不足之处,还是值得我们自身总结的,主要集中在以下几个方面: 1:工程总承包的商务谈判与合同管理 在合同谈判的过程中,应当充分考虑由于外部环境的变化,特别是近几年由于物价上涨被别快,甚至超出了我们在招投标中的风险预期,这就要求我们在招投标过程中加强一些风险防范意识,努力规避风险,保证自身的合理利润。

ABB软启动器参数设置方法

ABB软启动器参数设置方法 软起动器是一种集电机软起动、软停车、轻载节能和多种保护功能于一体的新颖电机控制装置,国外称为Soft Starter。它的主要构成是串接于电源与被控电机之间的三相反并联闸管及其电子控制电路。运用不同的方法,控制三相反并联闸管的导通角,使被控电机的输入电压按不同的要求而变化,就可实现不同的功能。 软起动器和变频器是两种完全不同用途的产品。变频器是用于需要调速的地方,其输出不但改变电压而且同时改变频率;软起动器实际上是个调压器,用于电机起动时,输出只改变电压并没有改变频率。变频器具备所有软起动器功能,但它的价格比软起动器贵得多,结构也复杂得多。ABB PSS系列软启动器有3个旋转设定开关合一个2位拨动开关,对于各种不同的应用场合都能完成基本的参数设定。 1.启动曲线——设定启动时电压提升的时间 说明:斜坡升压软起动。这种起动方式最简单,不具备电流闭环控制,仅调整晶闸管导通角,使之与时间成一定函数关系增加。其缺点是,由于不限流,在电机起动过中,有时要产生较大的冲击电流使晶闸管损坏,对电网影响较大,实际很少应用。启动时间可在1-30秒内调整。 2.停止曲线——设定停止时间电压下降的速度 说明:电机停机时,传统的控制方式都是通过瞬间停电完成的。但有许多应用场合,不允许电机瞬间关机。例如:高层建筑、大楼的水泵系统,如果瞬间停机,会产生巨大的“水锤”效应,使管道,甚至水泵遭到损坏。为减少和防止“水锤”效应,需要电机逐渐停机,即软停车,采用软起动器能满足这一要求。软起动器中的软停车功能是,晶闸管在得到停机指令后,从全导通逐渐地减小导通角,经过一定时间过渡到全关闭的过程。停车的时间根据实际需要可在0 ~ 30s调整。

EPC项目经验总结

EPC工程总承包管理的本质是要充分发挥总承包商的集成管理优势,需 要总承包商强大的融资和资金实力、深化设计能力、成熟的采购网络,以及争取施工技术精良的专业分包商的资源支持和有效监控等。 工程总承包出发点是以项目整体利益为出发点,通过对设计、采购和施工一体化管理,对共享资源的优化配置、大型专用设备的提供以及各种风险的控制为项目增值,从而获取更多的利润。 工程总承包管理的核心内容就是工程的设计(或深化设计)、采购、施工以及调试验收的管理. EPC模式的特点其实也就是他的出发点,就是获取更多的利润,EPC模 式也是成功实施BT、BOT项目的基础,带有融资性质的BT、BOT项目中的B 就等于EPC只有通过EPC模式经历了建设项目从规划设计到竣工验收交付的全过程管理,才能够真正掌握项目建造的全部成本要素。施工总承包项目只给承包商提供了发挥施工技术优势的空间,承建商只是通过施工方案优化控制项目建造的很有限的部分成本要素,毕竟施工过程只是整个建设过程的一个环节,因此他的作用也是有限的。对EPC工程总承包项目而言, 更加重要的是总承包商有机会通过把握设计优化机会以及EPC的一体化降 低整个工程的建造成本并保证建筑产品的质量。 操作过程中分为施工前的准备和施工过程的工作几个主要步骤:施工前的准备:1:工程总承包模式 *2:总包商的融资策略与项目资金管理 3:工程总承包投标策略 *4:工程总承包的商务谈判与合同管理施工过程的工作: ☆1:工程总承包的深化设计管理 ☆ 2:工程总承包中的分包商管理

3:工程总承包项目的风险管理 ☆ 4 :工程总承包的采购管理 5:总承包的组织管理体系 我局承建了省水电设计院总承包的泵站更新改造工程,在实际生产过程中,由于都是第一次按照这类型承包方式,虽然双方都本着不断探索、互相学习的精神顺利圆满的完成了施工任务,但过程中暴露许多问题和不足之处,还是值得我们自身总结的,主要集中在以下几个方面: 1:工程总承包的商务谈判与合同管理在合同谈判的过程中,应当充分考虑由于外部环境的变化,特别是近几年由于物价上涨被别快,甚至超出了我们在招投标中的风险预期,这就要求我们在招投标过程中加强一些风险防范意识,努力规避风险,保证自身的合理利润。 2:工程总承包的深化设计优化问题作为设计总承包的核心问题,对设计的优化(或深化设计)重要性不言而喻,可以说是最重要的一环,这一步骤直接影响下游的采购和施工成本高低,设计应当派遣即有设计经验又有现场施工管理的人员进行综合考虑,才能达到最大的设计优化,实现最大利益,在实际操作过程中,设计往往由于人员经验不足或者重视程度不够等原因,没能达到这一要求。3:工程总承包中的分包商及其团队管理问题 由于EPC模式已成为工程建设中比较高的境界,对于分包商及其工作 组成员的素质要求要高于其他施工管理组的。其成员往往是在专业上的技术专家,同时也是管理协调方面的能手;不仅在技术工作、设计工作、现场建设方面有着多年的工作经历,而且在组织协调能力、与人沟通能力、对新情况的应变能力、对大局的控制和统筹能力方面均应有出色才能。而能够达到这一要求的很多都是行业内有信誉、有实力的大分包商,他们有经验也有条件对一线具体工作步骤进行大胆技术创新,从而提高整个过程的利润,实现双赢的局面。正是高素质、高效率的团队形成对项目经理的全力支持才得以保证项目的正常实施。因此分包商的选择也是很重要的一方面。

eclipse下ini设置

eclipse下ini设置 Ubuntu 系统下,Eclipse 配置文件: vi ~/eclipse/eclipse.ini -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M 这里有几个问题: 1. 各个参数的含义什么? 2. 为什么有的机器将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置? 1. 各个参数的含义什么? 参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。 堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java 虚拟机启动时创建的。在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。 可以看出JVM主要管理两种类型的内存:堆和非堆 简单来说:堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。 堆内存分配 JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms 的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。 非堆内存分配 JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。 JVM内存限制(最大值) 首先,JVM内存限制于实际的最大物理内存(内存条),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。 2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动? 通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动,主要有以下几种原因:

u-boot启动分析

背景: Board →ar7240(ap93) Cpu →mips 1、首先弄清楚什么是u-boot Uboot是德国DENX小组的开发,它用于多种嵌入式CPU的bootloader程序, uboot不仅支持嵌入式linux系统的引导,当前,它还支持其他的很多嵌入式操作系统。 除了PowerPC系列,还支持MIPS,x86,ARM,NIOS,XScale。 2、下载完uboot后解压,在根目录下,有如下重要的信息(目录或者文件): 以下为为每个目录的说明: Board:和一些已有开发板有关的文件。每一个开发板都以一个子目录出现在当前目录中,子目录存放和开发板相关的配置文件。它的每个子文件夹里都有如下文件(以ar7240/ap93为例): Makefile Config.mk Ap93.c 和板子相关的代码 Flash.c Flash操作代码 u-boot.lds 对应的链接文件 common:实现uboot命令行下支持的命令,每一条命令都对应一个文件。例如bootm命令对应就是cmd_bootm.c cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录mips等。它的每个子文件夹里都有入下文件: Makefile Config.mk Cpu.c 和处理器相关的代码s Interrupts.c 中断处理代码 Serial.c 串口初始化代码 Start.s 全局开始启动代码 Disk:对磁盘的支持

Doc:文档目录。Uboot有非常完善的文档。 Drivers:Uboot支持的设备驱动程序都放在该目录,比如网卡,支持CFI的Flash,串口和USB等。 Fs:支持的文件系统,Uboot现在支持cramfs、fat、fdos、jffs2和registerfs。 Include:Uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目下configs目录有与开发板相关的配置文件,如 ar7240_soc.h。该目录下的asm目录有与CPU体系结构相关的头文件,比如说mips 对应的有asm-mips。 Lib_xxx:与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。 Net:与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。 Tools:生成Uboot的工具,如:mkimage等等。 3、mips架构u-boot启动流程 u-boot的启动过程大致做如下工作: 1、cpu初始化 2、时钟、串口、内存(ddr ram)初始化 3、内存划分、分配栈、数据、配置参数、以及u-boot代码在内存中的位置。 4、对u-boot代码作relocate 5、初始化malloc、flash、pci以及外设(比如,网口) 6、进入命令行或者直接启动Linux kernel 刚一开始由于参考网上代码,我一个劲的对基于smdk2410的板子,arm926ejs的cpu看了N 久,启动过程和这个大致相同。 整个启动中要涉及到四个文件: Start.S →cpu/mips/start.S Cache.S →cpu/mips/cache.S Lowlevel_init.S →board/ar7240/common/lowlevel_init.S Board.c →lib_mips/board.c 整个启动过程分为两个阶段来看: Stage1:系统上电后通过汇编执行代码 Stage2:通过一些列设置搭建了C环境,通过汇编指令跳转到C语言执行. Stage1: 程序从Start.S的_start开始执行.(至于为什么,参考u-boot.lds分析.doc) 先查看start.S文件吧!~ 从_start标记开始会看到一长串莫名奇妙的代码:

IC设计经验总结

I C设计经验总结 一、芯片设计之前准备工作: 1)根据具体项目的时间要求预订MPW班次,这个可以多种途径完成。 (1):一方面可以跟中科院EDA中心秦毅等老师联系,了解各个工艺以及各个班次的时间。半导体所是EDA中心的会员单位,他们会很热心的帮助完成。 (2):另一方面可以和具体项目合作的单位如清华等,根据他们的流片时间来制定自己的流片计划。 2)仔细核对设计库的版本更新情况,包括PDK、Spectre Model以及RuleDecks。这些 信息可以直接可以从中科院EDA中心获得,或者从相应的合作单位进行沟通统一。 这一点对后续的设计很重要,请务必要引起重视。 3)得到新的工艺库必须整体的熟悉一下,好好的查看里面的Document以及Userguide 之类的,里面的很多信息对实际设计很有帮助。安装工艺库的过程会根据具体设计要求做出一些选着。如TSMC65nm工艺库在安装过程中会提示是否选着RF工艺、电感是否使用厚层金属、MIM电容的单位面积电容值等之类的。 4)制定TapeOut的具体Schedule. 这个Schedule的制订必须请相关有经验的人来核 实,第一次TapeOut的人往往缺乏实际经验,对时间的安排可能会不合理。一旦Schedule制订好后,必须严格按照这个时间表执行。当然必须赶早不赶晚! 二、芯片设计基本系统框图一

图一 三、模拟IC设计基本流程 3.1) 设计框图如下图二 电路样式选择 电路结构确定 参数的选定 以及仿真 优化以及可 靠性仿真 图二

3.2 电路的式样确定 这个主要是根据系统设计结果,分析和确定模拟电路的详细的式样。 3.3 电路的结构确定 根据单元模块电路的功耗、代价等各个指标的折中分析,确定各个单元模块的具体实现电路形式,如滤波器是无源滤波器还是有源滤波器,有正交VCO产生I/Q信号还是通过/2分频器来实现I/Q信号,用差分形式还是用单路形式等等。在具体电路的选取过程中,我们需要查阅了大量的IEEE文献,从中选取了比较成熟的,应用较广的电路结构来进行我们的设计工作。有时候可能会发现所确定的结构很难或者根本不可能满足技术指标的要求,这就需要改进结构或者查阅文献,设法满足要求。 3.4 参数的选取和仿真 电路参数的选定与电路的仿真是分不开的。在比较重要的设计任务中,手算可以在20%的时间内完成80%的设计工作量,剩下的20%却需要花80%的时间来做。通过手算确定的参数是近似的,有时候会引错方向。但是它可以了解到参数的变化对设计会有多大的影响,是很有必要的。而采用计算机的反复迭代会使设计者对设计体会不深,不是明智的办法。 俗话说“公欲善其事,必先利其器”。目前,在公司内部可以使用多种EDA工具进行电路仿真。对于EDA工具的使用不在于多,能够精通常用的一类或者几类就行。最主要的时候能够灵活的进行仿真规划,知道什么样的电路适合用什么样的仿真工具。 -HSPICE;对于低频电路设计来说,HSPICE是一种最灵活方便的工具,而且其仿真精度也比较高,后来被SYNOPSYS收购,好像也正是因为这个原因使得如今的Hspice仿真速度以及精度都可以跟Cadence产出的仿真器相媲美了。业界使用Hspice作为仿真软件的也挺多,原先是avanti公司的, -Spectre;是Cadence的仿真器,由于其是图形界面,所以很直观。 -SpectreRF:对于射频电路设计,SpectreRF是一种不错的选择。 -UltraSim:相比于Spertre而言,在仿真精度损失3%的情况下,可以加速10~100倍的仿真速度。而且进行整体芯片后仿真时候,我们可以根据其不用的精度要求来设置各个模块的仿真精度。UltraSim Full-Chip Simulator for faster convergence on goals and signoff of post-layout designs at the chip level. 具体UltraSim的使用可以参考《Virtuoso? UltraSim Simulator User Guide》、《ADE/UltraSim Integration Tutorial》等。在网上相关资料很多,可以根据要求自己下载学习。 -APS:Accelerated Parallel Simulator delivers high-precision SPICE and scalable

eclipse优化(操作很卡顿)

我的ECLIPSE运行时速度奇慢,具体表现为: 1、只要ECLIPSE启动后,硬盘灯就狂闪,不停的读盘; 2、发布TOMCAT经常在0%; 3、偶尔CPU占满; 网上讲优化的文章无数,但是总是有用的却很少,大部分是转载甚至是抄袭的。在借鉴各个文章的做法并不断尝试后,我的问题终于解决了。 1、启动参数的优化; 我的启动参数为:-Xms976m -Xmx976m -XX:PermSize=128m -XX:MaxPermSize=128m -Xmn168m -XX:+DisableExplicitGC 其中XX:PermSize和XX:MaxPermSize是必须的,仅仅设置Xmx,经常出现ECLIPSE内存溢出的情况; 2、启动插件优化: windows - preference- general - startup and shutdown 里,只保留第1、3、4,其他全部取消,保留的为: Usage DAta Gathering Plug-in, Equinox Provisioning Platform Automatic Updata Support, WTP Webservice UI Plug-in 4、关闭验证 windows - preference-Validation 全部取消,只保留Manual 列; 在工程上右键-Validation ,同样全部取消,只保留Manual列,如果需要检查代码是否有错,可以在代码文件上右键,手动验证。 5、清理工程文件 删除工作空间目录下.metadata\.plugins\https://www.wendangku.net/doc/8110762647.html,agedata.recording目录里的所有文件,主要要保留这个目录,只删除目录下文件即可 在经过以上操作后,我的ECLIPSE无论是启动还是发布或者是编译工程,速度都提升了不少,特别是启动,原来要等一两分钟,现在15秒内进界面,并且所有的代码功能、工程编译、发布都不受影响,PUBLISH TOMCAT的时间基本在2分钟以内,我们的工程文件还算是比较大的了。重点是,所有操作过程中硬盘灯再也没出现过狂闪、狂读盘的情况了。以上仅供参考大家参考,欢迎反馈问题和建议,谢谢。

Uboot如何向内核传递参数

Uboot如何向内核传递参数 一:启动参数的传递过程 启动参数是包装在数据结构里的,在linux kernel启动的时候,bootloader把这个数据结构拷贝到某个地址, 在改动PC跳向内核接口的同时,通过通用寄存器R2来传递这个地址的值,下面这句话就是uboot跳向linux kernel的代码(bootm命令) theKernel (0, bd->bi_arch_number, bd->bi_boot_params); thekernel其实不是个函数,而是指向内核入口地址的指针,把它强行转化为带三个参数的函数指针,会把三个 参数保存到通用寄存器中,实现了向kernel传递信息的功能,在这个例子里,会把R0赋值为0,R1赋值为机器号 R2赋值为启动参数数据结构的首地址 因此,要向内核传递参数很简单,只要把启动参数封装在linux预定好的数据结构里,拷贝到某个地址(一般约定俗成是内存首地址+100dex) 二:启动参数的数据结构 启动参数可保存在两种数据结构中,param_struct和tag,前者是2.4内核用的,后者是2.6以后的内核更期望用的 但是,到目前为止,2.6的内核也可以兼容前一种结构,两种数据结构具体定义如下(arm cpu): struct param_struct { union { struct { unsigned long page_size; /* 0 */ unsigned long nr_pages; /* 4 */ unsigned long ramdisk_size; /* 8 */ unsigned long flags; /* 12 */ #define FLAG_READONLY 1 #define FLAG_RDLOAD 4 #define FLAG_RDPROMPT 8 unsigned long rootdev; /* 16 */ unsigned long video_num_cols; /* 20 */ unsigned long video_num_rows; /* 24 */ unsigned long video_x; /* 28 */ unsigned long video_y; /* 32 */ unsigned long memc_control_reg; /* 36 */ unsigned char sounddefault; /* 40 */ unsigned char adfsdrives; /* 41 */ unsigned char bytes_per_char_h; /* 42 */ unsigned char bytes_per_char_v; /* 43 */ unsigned long pages_in_bank[4]; /* 44 */ unsigned long pages_in_vram; /* 60 */

设计部工作总结

设计部工作总结(精选多篇) 第一篇:设计部 20xx-20xx年度工作报告 ——设计部工作总结 时光如白驹过隙,转瞬即逝,眨眼间一年时间便悄然而过。在已然逝去的一个学年中,学生会作为河南大学三大学生组织之一,在校党委的领导下,在校团委的指导和支持下,本着为学生服务的宗旨,展开了一系列活动。在活动期间各个部门各行其责,相互配合,展现了惊人的默契和团结能力。 设计部是学生会的宣传部门,是学生会的精神面貌的体现者,通过展板制作、海报设计等多种方式在活动开展之前渲染气氛,为活动的开展打下坚实的基础。设计部的主要工作是在对各个活动全面分析,透彻掌握的情况下,按照活动的主题,根据各部门的需要,在活动开展之前,制作展板进行宣传。在本学年中我们依次对校园歌手大赛、河大杯足球赛、畅想五月等各项活动进行了全面的宣传。在展板制作过程中,我们以高质量高标准来严格要求自己,每一张展板都需要通过部长们的严格审查方能交付承办部门。之后我们仍然积极配合各部门进行值班,进行宣传活动,调动同学们参与活动的积极性。在活动进行过程中,设计部需要调派人手协助各个部门进行桌椅搬运,会场布置等工作,活动结束后

依然坚持到最后进行收尾。 另外,我们设计部在本学年开创性的开展了我们设计部的专属活动“首届校园创意达人秀”,活动开展之前、之中、之后,在其他部门对我们的大力支持下,圆满的完成了宣传、展出、投票、评选等各项工作。这项创举将成为设计部发展过程中的里程碑。 但是,在本学年的工作中依然暴露出些许缺点,现总结如下: (一)制作展板的创新意识有待提高,这也是工作中面临的最大问题之一。漂亮精美的展板能够吸引更多同学的眼球,光是平面的图画同学们已经习以为常,对待这种展板,同学们的反应大多是一瞥而过,这就需要我们在以后展板制作过程中对制作技巧和工艺进行改良和提高。 (二)工作效率偏低。一方面因为人员较少,工作量偏大,导致一些同学因为坚持不住而离开学生会这个大家庭,这就更造成人员稀缺。另一方面由于各种原因,比如展板到位不及时、展板制作素材及材料准备不充分等,这就需要提高 纪律性的同时加强各个部门之间的联系,及时的准备各种必备所需。另外,由于我们没有办公室钥匙,人员到齐而不能开展制作也是工作效率偏低的原因之一。 (三)招新时的宣传不到位。因此导致广大学生,尤其

eclipse+websphere配置说明

Eclipse+Websphere配置说明

目录 一、前言 (3) 二、安装webSphere (3) 2.1.安装WAS (3) 2.2.配置WAS日志输出方式 (5) 三、eclipse配置 (6) 3.1.下载purchaseEAR工程 (6) 3.2.在eclipse中配置websphere (7) 3.3.部署purchaseEAR (8) 3.4.eclipse启动websphere (9) 3.5.修改eclipse部署方式 (10) 四、webSphere配置 (11) 3.1.部署工程 (11) 3.2.支持jdk1.5 (13) 五、注意事项 (14) 4.1.JSP注意事项 (14) 4.2.webSphere注意事项 (15)

一、前言 本文档用于描述开发青海集采系统过程中使用eclipse+websphere的配置过程。 工程环境: Jdk1.5 Myeclipse6.0以上 Websphere6.1 TortoiseCVS 二、安装webSphere 2.1.安装WAS ●解压was.cd.6100.trial.base.windows.ia32.zip,运行launchpad.exe ●选择“启动WebSphere Application Server - Trial 的安装向导。” 一路“下一步”,提示输入登陆控制台的用户名密码。 ●继续“下一步”直到完成安装。安装完成之后默认会启动“第一步”,如图:

选择“安装验证”,如果安装正常会显示如下信息,此时websphere服务已经被启动。

2.2.配置WAS日志输出方式 ●输入:http://localhost:9060/admin进入webpshere管理平台,如果能看到如下页面, 说明websphere正常启动了。填写你设置的用户名密码。 ●为了方便在ecilpse控制台中看到日志信息,所以要设置log信息输出到控制台,(默认 情况下log是输出到文件中)。选择服务器→应用程序服务器→server1→记录和跟踪→JVM日志,将System.out和System.err下的“文件名”的值修改为“console” ●在“第一步”控制台中选择“停止服务器”,接下来我们使用eclipse来操作webpshere。

软启动基本知识

软启动基本知识 1.软起动器是一种集软停车、轻载节能和多种保护功能于一体的新颖电机控制装置,国外称为Soft Starter。它的主要构成是串接于电源与被控电机之间的三相反并联闸管及其电子控制电路。 运用不同的方法,控制三相反并联闸管的导通角,使被控电机的输入电压按不同的要求而变化,就可实现不同的功能。 软起动器和变频器是两种完全不同用途的产品。变频器是用于需要调速的地方,其输出不但改变电压而且同时改变频率;软起动器实际上是个调压器,用于电机起动时,输出只改变电压并没有改变频率。变频器具备所有软起动器功能,但它的价格比软起动器贵得多,结构也复杂得多。 2.什么是电动机的软起动?有哪几种起动方式? 运用串接于电源与被控电机之间的软起动器,控制其内部晶闸管的导通角,使电机输入电压从零以预设函数关系逐渐上升,直至起动结束,赋予电机全电压,即为软起动,在软起动过程中,电机起动转矩逐渐增加,转速也逐渐增加。软起动一般有下面几种起动方式。 (1)斜坡升压软起动。这种起动方式最简单,不

具备电流闭环控制,仅调整晶闸管导通角,使之与时间成一定函数关系增加。其缺点是,由于不限流,在电机起动过程中,有时要产生较大的冲击电流使晶闸管损坏,对电网影响较大,实际很少应用。 (2)斜坡恒流软起动。这种起动方式是在电动机起动的初始阶段起动电流逐渐增加,当电流达到预先所设定的值后保持恒定(t1至t2阶段),直至起动完毕。起动过程中,电流上升变化的速率是可以根据电动机负载调整设定。电流上升速率大,则起动转矩大,起动时间短。 该起动方式是应用最多的起动方式,尤其适用于风机、泵类负载的起动。 (3)阶跃起动。开机,即以最短时间,使起动电流迅速达到设定值,即为阶跃起动。通过调节起动电流设定值,可以达到快速起动效果。 (4)脉冲冲击起动。在起动开始阶段,让晶闸管在级短时间内,以较大电流导通一段时间后回落,再按原设定值线性上升,连入恒流起动。 该起动方法,在一般负载中较少应用,适用于重载并需克服较大静摩擦的起动场合。 3.软起动与传统减压起动方式的不同之处在哪里?

高速铁路专网规划与优化经验总结V2[1].2

高速铁路专网规划与优化经验总结 中国移动通信集团福建有限公司 2009年11月 目录

一、概述 (2) 二、高铁专网规划优化经验总结 (3) (一)高铁专网设计目标 (3) (二)温褔铁路福建段建成初期实测指标 (3) (三)主要原因分析和解决措施介绍 (4) 1、部分区域存在弱覆盖 (4) 2、邻区数据混乱 (7) 3、小区参数设置不当 (7) 4、高铁网络拓扑结构问题 (11) 三、TD网络引入对高铁建设的影响及建议 (12) (一)TD网络高铁室外覆盖建议 (12) (二)TD网络高铁隧道覆盖建议 (12) (三)TD和其他三系统隧道内漏缆建设建议 (14) 四、附录 (15) (一)NSN快速切换算法介绍 (15) (二)华为快速切换算法介绍 (15) (三)华为高铁一般参数设置模板 (15) 一、概述 随着国家大力发展高速铁路,福建省内越来越多的高速铁路线路已经开通或

即将开通,为指导各地市分公司今后的高速铁路通信网络工程建设,满足业务发展需求,省公司对已完成的温褔高铁覆盖规划设计、建设和初期优化调整工作进行了一系列的技术经验和教训的总结,在此基础上,初步形成了一套对高速铁路专网规划,建设和后期优化调整的指导思想和意见,作为各地市分公司今后开展高铁网络工程建设的参考与指导。 二、高铁专网规划优化经验总结 (一)高铁专网设计目标 1、我省标准(参考高速公路要求) (1)覆盖率:车厢内>=-94dBm,覆盖率95% (2)接通率:90%以上 (3)里程掉话比:50 (5)话音和数据各项指标必须优于竞争对手(电信及联通) (二)温褔铁路福州段优化前后指标对照 从上表可见,温褔高铁专网建成初期,各项考核指标都不甚理想,与设定目标差距较大。通过一段时间的集中优化后,各项指标有了不同程度的改善,随着工程建设的陆续完善及优化的不断持续深入,指标还将有进一步提升的

SIRIUS 3RW44软起动器通讯及参数配置使用入门

SIRIUS 3RW44软起动器通讯及参数配置使用入门 1.概述SIRUS 3RW44电子软起动器可以通过PROFIBUS-DP网络进行通讯。硬件版本要求从E06,生产日期从060501开始,见图1标识。本文将主要讲述如何通过PROFIBUS-DP网络进行通讯,以及如何通过Softstarter ES软件进行参数 ... 1.概述 SIRUS 3RW44电子软起动器可以通过PROFIBUS-DP网络进行通讯。硬件版本要求从E06,生产日期从060501开始,见图1标识。本文将主要讲述如何通过PROFIBUS-DP网络进行通讯,以及如何通过Softstarter ES软件进行参数化、操作和监视。 图1. 版本号 2.PROFIBUS-DP通讯 首先要选择通讯模板,3RW44软起动器装配PROFIBUS通讯模版后具备PROFIBUS 通讯功能。通讯模版的订货号:3RW4900-OKC00。(注意:在安装通讯模版时首

图2安装通讯模板 2.1激活通讯模板功能和设置站地址 2.1.1通过液晶屏激活通讯模板和设置站地址 1. 在首次接通3RW44软起动器之前,要先检查主侧和控制侧的接线是否正确。在首次施加控制电压之后,会自动进入必须执行一次的快速起动菜单中,根据设备的情况来预设软起动器的重要参数。(详见操作手册) 2. 按照图3所示的顺序操作按键来激活通讯模版。

图3激活通讯模板 3. 按照图4所示设定设备PROFIBUS DP地址,并按照图5保存参数。 4. PROFIBUS-DP LED 红色闪烁。 5. 当PROFIBUS-DP图标“ ”显示在液晶屏的下面时表示通讯模版被成功激活。

相关文档
相关文档 最新文档