Thursday, August 26, 2004

JDK 5.0 的好玩工具

JDK 5.0 多了不少好玩的東西

像在 command line 下打 jps 會列出 Java 行程
12063 Jps
11862 Main
10739 jedit.jar

前面的數字是 process id (pid)

用 jinfo pid 可以列出該行程的一些 Java 設定資料

jmap -histo pid 顯示這樣的東西

Object Histogram:

Size    Count   Class description
-------------------------------------------------------
4018800 340     int[]
412632  4287    * ConstMethodKlass
242616  4287    * MethodKlass
221776  6147    * SymbolKlass
156056  301     * ConstantPoolKlass
110128  283     * ConstantPoolCacheKlass
107480  301     * InstanceKlassKlass
67440   312     byte[]
62504   572     char[]
32384   368     java.lang.Class
25888   436     short[]

分別是各類型物件所佔記憶體大小、數量、所屬 Class (int[] 佔那麼多是因為我宣告了一個大小一百萬的陣列)

jmap -heap pid 則會顯示 heap 的相關資料

詳細資料在 http://java.sun.com/j2se/1.5.0/docs/tooldocs/index.html


最底下的兩大類 Monitoring and Management Tools 和 Troubleshooting Tools

Subversion - 先 tag 或先 commit trunk



人多的 project 應該不太會要考慮這個,自己玩玩的小 project 比較會遇到

比如說現在 working copy 版本是 3

trunk 裡的東西修改一些後確定要成為 release 1.0

這時可以先 commit trunk,版本變成 4,再做 tag,版本變成 5

也可以先用 svn copy 把 trunk 複製到 working copy 的 tags/1.0 裡,再一起 commit,版本變成 4

看起來好像只有最後的版本號碼差一號

不過分別用 incremental 方式 dump 第一種的 -r 4:5,和第二種的 -r 4

會發現第一種的 dumpfile 對於 revision 4 部份記錄的是 trunk 在 3 之後的更動

revision 5 部份只記錄由 trunk 複製到 tags/1.0 該增加的頂層目錄,並標記由 revision 4 的 trunk 複製過來

而第二種則是對 trunk 的處理和第一種在 revision 4 部份的處理一樣

但對 tags/1.0 的處理是標記由 revision 3 的 trunk 複製,並記錄和 trunk 3 到 4 同樣的更動

也就是同樣的更動在 trunk 和 tags/1.0 被重複記錄了,如果 dump 的結果對應記錄的方式的話(我不確定)

如果真的是這樣,代表第一種省空間,第二種只是省個號碼

我是覺得只做 tag 就多個版本號碼有點多餘才試了第二種

但發現似乎有上面這種情形,所以又覺得還是都用第一種好 :P


  • 留言者: JiaYun
  • Email:
  • 網址:
  • 日期: 2007-05-31 00:21:07
http://www.jeffhung.net/blog/articles/jeffhung/903/

Sunday, August 15, 2004

svndumpfilter



我要把自己機器上的 subversion repository 複製到別的機器

但只要複製其中一個的 project

svnadmin dump 是整個 repository 都 dump

不過配合 svndumpfilter 就可以產生出單一 project 的 dumpfile

svnadmin dump /path/to/repos | svndumpfilter include project --drop-empty-revs --renumber-revs > dumpfile

加上參數 --drop-empty-revs 可以捨棄那些只修改別的 project,和要複製的 project 無關的版本

用了 --drop-empty-revs 再加上 --renumber-revs 能讓版本號碼重新編排,產生連續的號碼

不會因為有捨棄的版本,而造成號碼跳動

Version Control with Subversion 的 svndumpfilter 那一節有詳細說明

http://svnbook.red-bean.com/svnbook/ch05s03.html#svn-ch-5-sect-3.1.3

Wednesday, August 11, 2004

Commons4E 1.0.0 released



http://commons4e.berlios.de/

標題很大,可是功能還很少

自己有了想法後,在做之前有先搜尋過,知道已經有一個 Commonclipse

不過覺得它少了讓使用者選擇 field 的功能(它直接用所有的 field 產生那些 method)

而選擇 field 是我有這個想法時覺得最重要的一點

雖然有想過加入 Commonclipse,可是因為自己傾向不要打開 donate 功能

所以就乾脆開一個新的 project