posted @
2012-02-09 15:49 周磊 阅读(154) |
评论 (0) |
编辑 收藏
项目运行了一段时间后大量concurrent mode failure (gc 日志文件下载
/Files/b1412/concurrent_mode_failure.rar)
参数
SET CATALINA_OPTS= -Xms1024m -Xmx1024m -Xmn350m -server -noclassgc -XX:+PrintGCDetails -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=20 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseFastAccessorMethods -Xloggc:"%CATALINA_HOME%"/webapps/dm/tomcat_gc.log
XX:CMSInitiatingOccupancyFraction 参数默认值是68,之前调试的时候为了降低cms gc触发周期,扩大了这个值,也就是old达到百分之80才触发cms。但是长期运行随着old区的膨胀,开始频繁触发concurrent mode failure 。具体原因可以查阅相关资料,降低整个值可以避免,concurrent mode failure触发会暂停整个应用大大影响效率。
posted @
2012-02-07 12:43 周磊 阅读(2845) |
评论 (0) |
编辑 收藏
1 # $Id: $
2 # please keep these sorted and up to date
3 # Translator\uff1a \u788e\u77f3\u5934<http://sheng.javaeye.com wdmsyf@yahoo.com>
4
5 about_dialog_image=aboutgcviewer.png
6 about_dialog_title=\u5173\u4e8e <\u7ffb\u8bd1: http://sheng.javaeye.com>
7 button_ok=\u786e\u8ba4
8 button_cancel=\u53d6\u6d88
9
10 fileopen_dialog_title=\u9009\u62e9GC\u65e5\u5fd7\u6587\u4ef6
11 fileopen_dialog_read_file_failed=\u8bfb\u6587\u4ef6\u5931\u8d25\u3002
12 fileopen_dialog_add_checkbox=<html>\u589e\u52a0\u6587\u5230<br>\u5f53\u524d<br>\u7a97\u53e3.</html>
13 fileopen_dialog_hint_add_checkbox=<html>\u6b64\u9879\u9009\u4e2d\u65f6\uff0c\u4f1a\u5728\u5f53\u524d\u7a97\u53e3\u589e\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0c\u800c\u4e0d\u662f\u65b0\u5f00\u4e00\u4e2a\u7a97\u53e3\u6765\u6253\u5f00\u6587\u4ef6.</html>
14 fileexport_dialog_title=\u5bfc\u51faGC\u65e5\u5fd7\u6587\u4ef6
15 fileexport_dialog_csv=\u9017\u53f7\u5206\u9694\u6587\u4ef6 (*.csv)
16 fileexport_dialog_txt=\u7eaf\u6587\u672c\u6587\u4ef6 (*.txt)
17 fileexport_dialog_error_occured=\u53d1\u751f\u9519\u8bef.
18 fileexport_dialog_write_file_failed=\u5199\u6587\u4ef6\u5931\u8d25.
19 fileexport_dialog_confirm_overwrite=\u6587\u4ef6\u5df2\u5b58\u5728\uff0c\u8986\u76d6\u5417?
20 urlopen_dialog_title=\u6253\u5f00GC URL
21 urlopen_dialog_add_checkbox=\u589e\u52a0\u4e00\u4e2aURL\u5230\u5f53\u524d\u7a97\u53e3.
22 urlopen_dialog_hint_add_checkbox=<html>\u6b64\u9879\u9009\u4e2d\u65f6\uff0c\u4f1a\u5728\u5f53\u524d\u7a97\u53e3\u589e\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6\uff0c\u800c\u4e0d\u662f\u65b0\u5f00\u4e00\u4e2a\u7a97\u53e3\u6765\u6253\u5f00\u6587\u4ef6.</html>
23
24
25 main_frame_menu_file=\u6587\u4ef6
26 main_frame_menu_mnemonic_file=F
27 main_frame_menuitem_open_file=\u6253\u5f00\u6587\u4ef6
28 main_frame_menuitem_mnemonic_open_file=O
29 main_frame_menuitem_hint_open_file=\u6253\u5f00\u4e00\u4e2a\u6587\u4ef6
30 main_frame_menuitem_open_url=\u6253\u5f00URL
31 main_frame_menuitem_mnemonic_open_url=U
32 main_frame_menuitem_hint_open_url=\u6253\u5f00\u4e00\u4e2aURL
33 main_frame_menuitem_recent_files=\u6700\u8fd1\u7684\u6587\u4ef6
34 main_frame_menuitem_mnemonic_recent_files=F
35 main_frame_menuitem_hint_recent_files=\u6253\u5f00\u4e00\u4e2a\u6700\u8fd1\u4f7f\u7528\u8fc7\u7684\u6587\u4ef6
36 main_frame_menuitem_add_file=\u589e\u52a0\u4e00\u4e2a\u89c6\u56fe
37 main_frame_menuitem_mnemonic_add_file=A
38 main_frame_menuitem_hint_add_file=\u589e\u52a0\u4e00\u4e2agc\u89c6\u56fe\u5230\u5f53\u524d\u7a97\u53e3
39 main_frame_menuitem_refresh=\u5237\u65b0
40 main_frame_menuitem_mnemonic_refresh=R
41 main_frame_menuitem_hint_refresh=\u91cd\u65b0\u8f7d\u5165\u5f53\u524d\u6587\u4ef6
42 main_frame_menuitem_watch=\u76d1\u89c6
43 main_frame_menuitem_mnemonic_watch=W
44 main_frame_menuitem_hint_watch=\u76d1\u89c6\u5f53\u524d\u6587\u4ef6\uff0c\u5982\u679c\u6709\u53d8\u5316\u65f6\u91cd\u65b0\u8f7d\u5165
45 main_frame_menuitem_export=\u5bfc\u51fa
46 main_frame_menuitem_mnemonic_export=E
47 main_frame_menuitem_hint_export=\u5bfc\u51fa\u5f53\u524d\u6587\u4ef6
48 main_frame_menuitem_exit=\u9000\u51fa
49 main_frame_menuitem_mnemonic_exit=X
50 main_frame_menuitem_hint_exit=\u9000\u51faGCViewer
51
52 main_frame_menu_view=\u67e5\u770b
53 main_frame_menu_mnemonic_view=V
54
55 main_frame_menuitem_antialias=\u6297\u952f\u9f7f
56 main_frame_menuitem_mnemonic_antialias=A
57 main_frame_menuitem_hint_antialias=\u5728\u6e32\u67d3\u7ebf\u6761\u65f6\u4f7f\u7528\u6297\u952f\u9f7f\u529f\u80fd(\u53ef\u80fd\u4f1a\u5f71\u54cd\u6e32\u67d3\u901f\u5ea6)
58
59 main_frame_menuitem_show_data_panel=\u6570\u636e\u9762\u677f
60 main_frame_menuitem_mnemonic_show_data_panel=D
61 main_frame_menuitem_hint_show_data_panel=\u663e\u793a\u5f53\u524d\u6587\u6863\u8be6\u7ec6\u6570\u636e\u7684\u6570\u636e\u9762\u677f
62
63 main_frame_menuitem_full_gc_lines=\u5168GC\u7ebf
64 main_frame_menuitem_mnemonic_full_gc_lines=F
65 main_frame_menuitem_hint_full_gc_lines=\u663e\u793a\u6bcf\u4e00\u6b21\u5168\u5783\u573e\u6536\u96c6\u7ebf
66 main_frame_menuitem_inc_gc_lines=\u589e\u91cfGC\u7ebf
67 main_frame_menuitem_mnemonic_inc_gc_lines=I
68 main_frame_menuitem_hint_inc_gc_lines=\u663e\u793a\u6bcf\u6b21\u589e\u5783\u573e\u6536\u96c6\u7ebf
69 main_frame_menuitem_gc_times_line=GC\u65f6\u95f4\u7ebf
70 main_frame_menuitem_mnemonic_gc_times_line=L
71 main_frame_menuitem_hint_gc_times_line=\u663e\u793a\u6807\u8bc6\u5783\u573e\u6536\u96c6\u6240\u8017\u65f6\u95f4\u7684\u7ebf
72 main_frame_menuitem_gc_times_rectangles=GC\u65f6\u95f4\u77e9\u5f62
73 main_frame_menuitem_mnemonic_gc_times_rectangles=R
74 main_frame_menuitem_hint_gc_times_rectangles=\u663e\u793a\u6807\u8bc6\u5783\u573e\u6536\u96c6\u6d88\u8017\u65f6\u95f4\u7684\u77e9\u5f62
75 main_frame_menuitem_total_memory=\u603b\u5806\u5927\u5c0f
76 main_frame_menuitem_mnemonic_total_memory=T
77 main_frame_menuitem_hint_total_memory=\u5df2\u5206\u914d\u603b\u5185\u5b58\u5927\u5c0f
78 main_frame_menuitem_used_memory=\u5df2\u4f7f\u7528\u5806\u5927\u5c0f
79 main_frame_menuitem_mnemonic_used_memory=U
80 main_frame_menuitem_hint_used_memory=\u6b63\u5728\u4f7f\u7528\u7684\u5185\u5b58\u5927\u5c0f
81 main_frame_menuitem_tenured_memory=\u7ec8\u751f\u4ee3\u5806\u5927\u5c0f
82 main_frame_menuitem_mnemonic_tenured_memory=E
83 main_frame_menuitem_hint_tenured_memory=\u7ec8\u751f\u4ee3(tenured generation)\u5bf9\u8c61\u6240\u5360\u7528\u5185\u5b58\u5927\u5c0f
84 main_frame_menuitem_young_memory=\u65b0\u751f\u4ee3\u5806\u5927\u5c0f
85 main_frame_menuitem_mnemonic_young_memory=Y
86 main_frame_menuitem_hint_young_memory=\u65b0\u751f\u4ee3(young generation)\u5bf9\u8c61\u6240\u5360\u5185\u5b58\u5927\u5c0f
87
88 main_frame_menu_window=\u7a97\u53e3
89 main_frame_menu_mnemonic_window=W
90 main_frame_menuitem_arrange=\u6392\u5217
91 main_frame_menuitem_mnemonic_arrange=G
92 main_frame_menuitem_hint_arrange=\u6392\u5217\u6240\u6709\u7a97\u53e3
93
94 main_frame_menu_help=\u5e2e\u52a9
95 main_frame_menu_mnemonic_help=H
96 main_frame_menuitem_about=\u5173\u4e8eGCViewer
97 main_frame_menuitem_mnemonic_about=A
98 main_frame_menuitem_hint_about=\u663e\u793a\u5173\u4e8eGCViewer\u7684\u4fe1\u606f
99
100 data_panel_tab_pause=\u6682\u505c
101 data_panel_tab_summary=\u6982\u8981
102 data_panel_tab_memory=\u5185\u5b58
103 data_panel_acc_pauses=\u7d2f\u8ba1\u6682\u505c
104 data_panel_acc_fullgcpauses=\u7d2f\u8ba1\u5168GC
105 data_panel_acc_gcpauses=\u7d2f\u8ba1GC
106 data_panel_avg_pause=\u5e73\u5747\u6682\u505c
107 data_panel_avg_fullgcpause=\u5e73\u5747\u5168GC
108 data_panel_avg_gcpause=\u5e73\u5747GC
109 data_panel_min_pause=\u6700\u5c0f\u6682\u505c
110 data_panel_max_pause=\u6700\u5927\u6682\u505c
111 data_panel_total_time=\u603b\u65f6\u95f4
112 data_panel_footprint=\u6700\u5927\u5206\u914d\u5185\u5b58\u6570
113 data_panel_footprintafterfullgc=\u5168GC\u540e\u5185\u5b58\u5e73\u5747\u503c
114 data_panel_slopeafterfullgc=\u5168GC\u5761\u5ea6(Slope full GC)
115 data_panel_slopeaftergc=GC\u5761\u5ea6(Slope GC)
116 data_panel_footprintaftergc=GC\u540e\u5185\u5b58\u5e73\u5747\u503c
117 data_panel_throughput=\u541e\u5410\u91cf
118 data_panel_freedmemory=\u91ca\u653e\u5185\u5b58
119 data_panel_freedmemorypermin=\u91ca\u653e\u5185\u5b58/\u5206\u949f
120 data_panel_freedmemorybyfullgc=\u5168GC\u91ca\u653e\u5185\u5b58
121 data_panel_avgfreedmemorybyfullgc=\u5168GC\u5e73\u5747\u91ca\u653e\u5185\u5b58
122 data_panel_freedmemorybygc=GC\u91ca\u653e\u5185\u5b58
123 data_panel_avgfreedmemorybygc=GC\u5e73\u5747\u91ca\u653e\u5185\u5b58
124 data_panel_avgrelativepostgcincrease=GC\u540e\u5185\u5b58\u5e73\u5747\u589e\u91cf
125 data_panel_avgrelativepostfullgcincrease=\u5168GC\u540e\u5185\u5b58\u5e73\u5747\u589e\u91cf
126 data_panel_performance_fullgc=\u5168GC\u6027\u80fd
127 data_panel_performance_gc=GC\u6027\u80fd
128
129 action_zoom=\u7f29\u653e
130 action_zoom_hint=\u7f29\u653e
131
132 datareaderfactory_instantiation_failed=\u65e0\u6cd5\u8bc6\u522b\u6587\u4ef6\u683c\u5f0f.
133 datawriterfactory_instantiation_failed=\u4e0d\u652f\u6301\u7684\u6587\u4ef6\u683c\u5f0f:
134
135 timeoffset_prompt=\u65e5\u5fd7\u5f00\u59cb\u65f6\u95f4:
136
137 datareader_parseerror_dialog_message=GCViewer\u5728\u89e3\u6790\"{0}\"\u65f6\u9047\u5230\u95ee\u9898:
138 datareader_parseerror_dialog_title=\u89e3\u6790{0}\u51fa\u9519
139
打包到 gcviewer-1.2X.jar 的 com\tagtraum\perf\gcviewer 路径下即可,注意文件名必须是 localStrings_zh.properties
posted @
2012-01-11 13:22 周磊 阅读(1176) |
评论 (0) |
编辑 收藏
1重构改善既有代码的设计
大概看了不少了也实践了一些。主要是方法抽取的一些重构。感觉到现在来说做的项目什么设计啊都乱七八糟的,什么面向对象设计的,关系也都乱七八糟,总体来说我也是比较实用主义者,有些理论也只有一定情况才能试用,不过重构的话方法抽取啊这些还是很有用的,把方法写的和注释一样,读代码就和读注释差不多,那么目前把这些重构原则用好也差不多了
2Head_First
设计模式的比较出名的书籍,场景将的很细致了,还是那句话,目前的项目都没有那么严格和大规模的设计,不过很多小的模块自己能用一些简单的设计模式也不错,就算没有真正需要扩展和一些性能的要求,提高了代码可读性也算不错了了。单例,工厂这些就不多说了,太普遍。现在享元也用了下,这次做自定义协议实现时候用的xml和命令对象的转换参照了commons beanutils 中convertUtils类型转换的设计,后来看了这书发现有点类似的命令模式。对于模式各方褒贬不一,我理解现在我这个阶段写代码能基本复用易读差不多了,能参考一些模式的思想吧代码结构优化好就行,模式不是用来生搬硬套的教条,只要你这个代码结构能应对这个系统的需求变化就行。
3Java敏捷开发
看这本主要还是看一些重构和提高代码可读性的一些东西,变量方法命令等等。
最后之所以这个读书计划没有时间,主要是我觉得看书是为了更好的再工作中实践,提高质量。用到什么了需要了就在这些里面去找方案,而不是要一口气把书看完,那么也没有太大的价值
posted @
2012-01-03 00:25 周磊 阅读(190) |
评论 (0) |
编辑 收藏
只有注册用户登录后才能阅读该文。
阅读全文
posted @
2012-01-03 00:07 周磊 阅读(49) |
评论 (0) |
编辑 收藏