{cdate:2010-08-15}
{what:groovy,closure}
繰り返し調べる問題を groovy で解いていて気づいたのだが、
Closureを使わないで普通のJavaスタイルで書けば
OutOfMemoryを回避しやすい...というか Closureで書くよりはメモリ消費量が少ない
ということ。
あーもうこれわかっている人にとっては当たり前の話なんだろうけど。
いままでメモリを消費する処理を書いたことがなかったので
深く考えたことなかった。
ついつい
以下のように Closure で書いてしまうが...
def recur( javax.swing.tree.DefaultMutableTreeNode node ){
doSomething( node )
node.children().each{
recur( it )
}
}
普通にJavaスタイルでrecurを書いておけば、
よりメモリ消費量がすくない(たぶん)。
def recur( javax.swing.tree.DefaultMutableTreeNode node ){
doSomething( node )
for(int i=0; i<node.getChildCount(); i++){
recur( node.getChildAt(i) )
}
}