Posted on 2012-04-17 17:05
dennis 閱讀(19228)
評論(17) 編輯 收藏 所屬分類:
java 、
工作隨筆 、
工具和命令
我發(fā)現(xiàn)很多人沒辦法高效地解決問題的關(guān)鍵原因是不熟悉工具,不熟悉工具也還罷了,甚至還不知道怎么去找工具,這個問題就大條了。我想列下我能想到的一個Java程序員會用到的常用工具。
一、編碼工具
1.IDE:
Eclipse或者
IDEA,熟悉盡可能多的快捷鍵,《
Eclipse常見快捷鍵列表》
2.插件:
(1)
Findbugs,在release之前進行一次靜態(tài)代碼檢查是必須的
(2)
Clover,關(guān)心你的單元測試覆蓋率
(3)
Checkstyle 代碼風(fēng)格檢查
3.構(gòu)建和部署工具:
ant或者
maven,現(xiàn)在主流都是maven了吧,
使用nexus搭建maven私服,再加上持續(xù)集成
jenkins。代碼質(zhì)量不用愁。
4.版本管理工具:
svn或者
git
5.
diff和patch
6.設(shè)置你的eclipse或者IDEA,如formatter,
save actions以及code template等。代碼風(fēng)格,直接用google的也可以啊?!?a >Google style guide》
7.掌握一個文本編輯器,Emacs或者VIM,熟悉常用快捷鍵。這在你需要在線編輯代碼,或者編寫其他語言代碼時候特別有用?!?a >神器圣戰(zhàn)》
二、JDK相關(guān)
1.jstat : 觀察GC情況,如:
jstat -gcutil pid 2000
2.jmap,查看heap情況,如查看存活對象列表:
jmap -histo:live pid |grep com.company |less
或者dump內(nèi)存用來分析:
jmap -dump:file=test.bin pid
3.分析dump的堆文件,可以用jhat:
jhat test.bin
分析完成后可以用瀏覽器查看堆的情況。這個工具的分析結(jié)果還比較原始,你還可以用
Eclipse MAT插件進行圖形化分析,或者IBM的
Heap Analyzer.
4.jvisualvm和jconsole: JVM自帶的性能分析和監(jiān)控工具,怎么用?
請自己看文檔。
5.jstack:分析線程堆棧,如
jstack pid > thread_dump
查看CPU最高的線程在干什么的方法結(jié)合top和jstack:
http://www.iteye.com/topic/1114219
6.更多JVM工具,參見官方文檔:
http://docs.oracle.com/javase/6/docs/technotes/tools/
7.學(xué)習(xí)使用btrace分析java運行時問題?!?a >Btrace使用簡介》
8.GC日志分析工具:
GC viewer、
GC-console或者
自己挑吧。
9.性能分析工具,除了自帶的jvisualvm外,還可以用商業(yè)的
jprofiler。
10.JVM參數(shù)大全
11.《
JVM調(diào)優(yōu)標(biāo)準(zhǔn)參數(shù)陷阱》,iteye神貼。
三、Linux工具
1.
熟悉常用的shell命令,
3.使用
htop替換top。
4.熟悉下
strace,gdb甚至
systemtap來分析問題。
5.熟悉vmstat,iostat,sar等性能統(tǒng)計工具。
5.自動化部署腳本,
py-fabric或者自薦下我的
clojure-control。
四、其他
1.掌握一門腳本語言,
Python或者
Ruby,高效解決一些需要quick and dirty的任務(wù):比如讀寫文件、導(dǎo)入導(dǎo)出數(shù)據(jù)庫、網(wǎng)頁爬蟲等。注意不是python.com,咔咔。
2.使用Linux或者Mac os系統(tǒng)作為你的開發(fā)環(huán)境。
3.升級你的“硬件工具”,雙屏大屏顯示器、SSD、8G內(nèi)存甚至更多。
4.你懂的:
https://code.google.com/p/goagent/
五、如何查找工具?
1.搜索引擎,google或者baidu,《
搜索技巧》
2.萬能的stack overflow:
http://stackoverflow.com/
3.虛心問牛人。
六、最重要的是⋯⋯
一顆永不停止學(xué)習(xí)的心。