zoukankan      html  css  js  c++  java
  • MyEclipse优化全攻略

    MyEclipse的优化,或者其他编辑工具的优化,大致可以分为3个部分: 内存配置、加载项配置、以及默认编辑器配置:

    (1) 内存优化

    具体配置多少内存,请根据你的机器内存来设定,现在最少也应该有2GB物理内存吧,最普通的机器应该有4GB内存。个人感觉, 4GB内存只开Myeclipse和一个数据库没有太大压力, 如果你有8GB物理内存,那基本上不用操心内存的事,尽管加大配置给 Myeclipse的内存。【切记: 安装MyEclipse最好使用64位版本,因为32位版本只能使用1GB左右的堆内存】.

    废话不多说,直接找到 myeclipse.ini 文件,根据你安装的位置决定,例如我的是: C:DevToolsMyEclipseMyEclipse 9myeclipse.ini

    将最大堆内存 Xmx 和 最大永久内存 MaxPermSize 按比例扩大,例如扩大2倍,4倍都行. 

    原始的配置信息大致如下:

    
     
    1. ......

    2. -vmargs

    3. -Xmx512m

    4. -XX:MaxPermSize=256m

    5. -XX:ReservedCodeCacheSize=64m

    如何优化请查看下图:

    图1 将内存设置增大

    我的优化后的配置信息如下:

    
     
    1. ......

    2. -vmargs

    3. -Xmx2048m

    4. -XX:MaxPermSize=1024m

    5. -XX:ReservedCodeCacheSize=128m

    其他具体的内存优化选项,你可以不设置,也可以参考JVM内存优化,这需要你自己搜索啦,一般来说设置上面这两个参数就够了.

    如果是32位版本,启动报错,请将这些内存按比例缩小,比如768m什么的,总的控制住1.2GB以内吧,需要你自己试试。

    你还可以增加JVM参数来跟踪查看GC日志:

    例如,一个示例配置:

    
     
    1. -vmargs

    2. -Xms384m

    3. -Xmn192m

    4. -Xmx896m

    5. -XX:PermSize=192m

    6. -XX:MaxPermSize=384m

    7. -XX:ReservedCodeCacheSize=128m

    8.  
    9. -XX:+PrintGCTimeStamps

    10. -XX:+PrintGCDetails

    11. -verbose:gc

    12. -Xloggc:gc.log


    这只对Oracle(SUN)的Hotspot 这个JVM生效,其中, -XX:+PrintGCTimeStamps 是打印GC的时间戳, -XX:+PrintGCDetails 是打印GC细节信息的开关。

    -verbose:gc 指定日志级别为verbose,什么都打印。 -Xloggc:gc.log 是将日志文件输出到当前目录下的gc.log 文件中.当然,你也可以输出到其他路径,请参考该文件上方的其他路径的写法,使用左斜线(/)分隔各级路径.

    一个垃圾回收日志摘取部分如下:(含部分分析,可能分析不太正确,留待后期完善)

    (每次MyEclipse启动都会清空原来的日志文件)

    
     
    1. 1.300: [GC 1.300: [DefNew: 157312K->17027K(176960K), 0.0415563 secs]

    2. 157312K->17027K(373568K), 0.0415937 secs]

    3. [Times: user=0.05 sys=0.00, real=0.04 secs]

    4. --

    5. 1.300 这个应该是距离启动JVM的时间1.3秒?

    6. [

    7. GC, 表示新生代的回收

    8. [

    9. DefNew, 使用的是DefNew回收器

    10. 157312K->17027K 回收后新生代从157312K变为17027K

    11. (176960K) 新生代的总容量

    12. 0.0415563 secs 新生代回收耗时 0.041秒

    13. ]

    14. 157312K->17027K 整个堆内存占用从157312K变为17027K

    15. (373568K) 表示堆的总容量

    16. 0.0415937 secs 堆回收总耗时

    17. ]

    18. [

    19. user=0.05 用户态耗时

    20. sys=0.00 系统态耗时

    21. real=0.04 实际耗时

    22. ]

    23. --

    24.  
    25. 19.632: [Full GC (System) 19.632:

    26. [Tenured: 35589K->61913K(196608K), 0.2171500 secs]

    27. 160492K->61913K(373568K),

    28. [Perm : 51579K->51579K(196608K)],

    29. 0.2171970 secs]

    30. [Times: user=0.20 sys=0.00, real=0.22 secs]

    31.  
    32. --

    33. 19.632 这个应该是距离启动JVM的时间19.632秒?

    34. [

    35. Full GC (System) 系统全量GC

    36. [

    37. Tenured

    38. 35589K->61913K 从35M变为61M(约)

    39. (196608K) 总的为196M

    40. 0.2171500 secs 耗时

    41. ]

    42. 160492K->61913K 从160M->61M

    43. (373568K) 总的373M

    44. [

    45. Perm : 持久代 PermGen回收(如 static 及挂钩的东西之类,在HotSpot中,方法区[JVM规范]就是持久代[GC中的分代实现])

    46. 51579K->51579K 从51M变为51M(持久代一般就这样)

    47. (196608K) 总大小196M

    48. ],

    49. 0.2171970 secs 持久带回收耗时0.217秒

    50. ]

    51. --

    52.  
    53. 118.897: [GC 118.897: [DefNew: 157312K->10954K(176960K), 0.0201250 secs]

    54. 234464K->88107K(373568K), 0.0201640 secs]

    55. [Times: user=0.03 sys=0.00, real=0.02 secs]

    56.  
    57. 1377.055: [Full GC (System) 1377.055:

    58. [Tenured: 67561K->67561K(196608K), 0.2481550 secs]

    59. 67742K->67561K(373568K),

    60. [Perm : 77335K->77335K(196608K)], 0.2482043 secs]

    61.  
    62. XXXXX这里有一堆乱码,用UltraEdit看全是00; 0x00 0x00 0x00 0x00 0x00 0x00

    63. [Times: user=0.02 sys=0.00, real=0.02 secs]

    64. Heap

    65. def new generation total 176960K, used 91128K [0x0a770000, 0x16770000, 0x16770000)

    66. eden space 157312K, 52% used [0x0a770000, 0x0f829bb0, 0x14110000)

    67. from space 19648K, 43% used [0x14110000, 0x149547c0, 0x15440000)

    68. to space 19648K, 0% used [0x15440000, 0x15440000, 0x16770000)

    69. tenured generation total 196608K, used 94153K [0x16770000, 0x22770000, 0x42770000)

    70. the space 196608K, 47% used [0x16770000, 0x1c362698, 0x1c362800, 0x22770000)

    71. compacting perm gen total 196608K, used 93292K [0x42770000, 0x4e770000, 0x5a770000)

    72. the space 196608K, 47% used [0x42770000, 0x4828b288, 0x4828b400, 0x4e770000)

    73. No shared spaces configured.

    在一堆0x00的后面,是堆内存的使用情况描述信息,从中可以看到:

    def new generation 默认的new生成的总空间大约为176MB,使用了91MB,【括号内应该是 其实内存地址,已用到的内存地址,结束内存地址】

    eden space 年轻代大约152MB,已使用52%【将3个地址使用16进制减法计算得出可知,大约用了80M, 空闲72MB】

    from 空间大约20MB,使用了43%.

    to 空间也是20MB左右,使用了0%

    tenured generation 大约192MB,使用了92MB左右,占47%,如果这个区域满了,那么就会引发全量GC,Full GC,详细信息请参考: 

    JVM调优:选择合适的GC collector (一)
     

    compacting perm gen 大约192MB,使用47%,也是92MB左右 具体信息请参考: JVM内存管理:深入垃圾收集器与内存分配策略
     

    我们发现,内存垃圾回收,不仅需要释放旧的空间,还需要对内存碎片进行整理。

    DefNewGeneration是default new generation
    ParNewGeneration是parallel new generation

    分析GC日志可以参考: http://iamzhongyong.iteye.com/blog/1989829

    或者参考 并发编程网翻译的CMS的分析

    (2). 加载项配置

    2.1 关闭多余的View,小窗口

    打开MyEclipse以后,默认会打开 MyEclipse Java Enterprise 这个可视界面,我们需要的也是这个。但是有一些我们用不到的东西,比如图片编辑器、内置浏览器什么的,将他们关闭的即可,因为很渣渣,很难用,很耗资源。

    如下图所示:

    图2.1 关闭掉无用的View

    2.2 修改启动项

    MyEclipse启动时会默认启动很多组件,可能这是懒人之福,但对于我们需要高效开发环境的人来说就是灾难了. 

    选择菜单 Window -->  Preferences; 打开首选项设置对话框,在对话框最左上角,搜索框中输入 start, 定位到 General --> Startup and Shutdown

    然后把右边的下拉框中,所有你不认识的选项的勾都去掉,因为基本上都没用。只留下随便几个即可,然后点击 Apply 应用,  就比如我的,如下图所示,全在这里了:

    图2.2 去除多余的启动项

    (3) 设置各种类型文件的默认编辑器

    选择菜单 Window -->  Preferences; 打开首选项设置对话框,在对话框最左上角,搜索框中输入 file, 定位到 General --> Editors --> File Associations;  在右边选择对应的文件类型(后缀), 然后在下方选择默认的编辑器,请记住: 最好将带 Visual 字样的默认编辑器去掉,因为真的不需要可视化编辑,或者说,不需要MyEclipse的可视化编辑。

    常用的文件类型后缀, 包括 *.htm【设置默认为MyEclipse HTML Editor】、 *.html 【设置默认为MyEclipse HTML Editor】、*.js 【设置默认为 Text Editor】、 *.jsp 【设置默认为MyEclipse JSP Editor】这四种, 大致如下图所示: 

    图3 设置各类型文件的默认编辑器

    (3.1) 设置下工作空间的默认编码:

    选择菜单 Window -->  Preferences; 打开首选项设置对话框,定位到 General --> Workspace; 将 Text File Encoding 修改为 UTF-8; 应用,保存即可。 如下图所示:

    图3.1 设置文件的默认编码

    好了,基本上需要的优化就已经结束,更详细的小项优化,你有时间可以自己搜索。

    重启MyEclipse试试吧!!!

    (3.2) 附加一点,如何设置默认语言

    现在搜狗、QQ输入法都很见,安装好后对开发者很不友好,默认可能就是中文输入法。有时候,QQ拼音输入法最坑,直接把任务栏的语言栏图标给藏起来了。 

    详细的设置方法如下:

    进入 开始菜单 --> 控制面板 --> 大图标 --> 区域和语言 --> 键盘和语言 --> 更改键盘 --> 常规。

    在上方是默认输入语言、选择为中文美式键盘即可。 如果没有,请在下方将其他的输入语言从列表中删除掉(只是从列表删除,系统中还存在.), 然后点添加,找到中国的部分,勾选上即可(这点图中没有体现,请灵活运用你的大脑.).

    示意图如下所示:

    图3.2 设置默认输入法为中文美式键盘(即英文)

  • 相关阅读:
    mysql中删除表
    js上传文件获取客户端地址
    form表单普通提交预览显示,读取显示tmp文件
    PHP中获取中英文混合字符串长度[主要是指个数,而不是字符串长度](转)
    离开页面提醒功能 (实现博客园离开编辑页面时的提醒功能)(转)
    Google maps API开发(一)(转)
    Python的getattr(),setattr(),delattr(),hasattr()
    Python读写文件
    Python命令行解析argparse常用语法使用简介
    面向对象设计与分析实例
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/9710124.html
Copyright © 2011-2022 走看看