2008-09-01から1ヶ月間の記事一覧

Meteorの現状の問題点その11

その3の時点で検証済みのロジックを実際に実装。Ruby1.8.6では同一要素の属性の変更回数+内容の変更回数の合計 が3より少ない場合、既存の実装のほうが今回の実装よりも微妙 に速い、合計が4以上の場合には今回の実装のほうが速くなる。 以前掲載したtest_…

Meteorの現状の問題点その10の4

Ruby1.8.xの場合のMeteor::Core::Kernel#print及びflushメソッドの文字列結合処理の分岐を 廃止、文字結合処理を「 以前掲載したtest_xml.rbの10000ループがCore2 Duo 2.5GHzのマシンで約1.3秒 -> 約1.3秒(Ruby1.8.6)、1.1秒 -> 約1.1秒(Ruby1.9.0_4)。 微妙…

RubyとJavaの文字列連結の違いその3

Rubyの文字列結合処理ではRuby1.8.xまでとRuby1.9.0以降とで 結合方法による処理速度の優劣に違いが出てくる。 Ruby1.8.xでは 式展開による結合 >「Array#push」&「Array#join」による結合 >「> 「+」による結合 Ruby1.9.xでは 式展開による結合 >「 「Arra…

Meteorの現状の問題点その10の3

Ruby1.8.xの場合のMeteor::Core::Kernel#print及びflushメソッドの文字列結合処理を分岐。 以前掲載したtest_xml.rbの10000ループがCore2 Duo 2.5GHzのマシンで 約2.0秒 -> 約1.3秒(Ruby1.8.6)。

Meteorの修正

elementメソッドのロジックにおいて要素の検索順序を変更。 (XMLとXHTMLに影響)

Meteorの現状の問題点その10の2

全体的に文字列結合処理を修正。 以前掲載したtest_xml.rbの10000ループがCore2 Duo 2.5GHzのマシンで 約20秒 -> 約2秒(Ruby1.8.6)、約1.1秒(Ruby1.9.0_4)。

RubyとJavaの文字列連結の違いその2

RubyでStringは変更可能(mutable)なクラス。 「+」メソッドは非破壊的なメソッド、呼び出すと毎回 新規オブジェクトを生成し、それに変更を適用する。 「 を直接変更する。 (「 「 文字列連結は「+」ではなく「 但し、短い文字列では式展開で文字列連結する…

Rubyにおけるメソッド

"破壊的なメソッド"はレシーバを変更するが 、"非破壊的なメソッド"はレシーバを変更しない。 非破壊的なメソッドでは新規オブジェクトが生成され、 生成したオブジェクトに対して変更が適用される。 破壊的なメソッドではメソッドのレシーバに対して 変更が…

RubyGems パッケージの作り方 by cutagem

cho45さん作のgem作成支援ツールcutagemを使います。 cutagemのオフィシャルでは前版0.0.7のgemしか入手できないので、 genki(瀧内元気)さんがcho45さんのgithubリポジトリから フォークしたgithubリポジトリ経由で cutagemの最新版+αの0.0.8.3のgemを取得。…

Meteorのgem化

cutagemを使って、meteor.gem、meteor.gemspecを作成。

Meteorの更新

Meteorの現状の問題点その7でelementメソッドの結果を キャッシュする方向を考えていたけれど、方針を変更。 混合内容の要素((X)HTMLのtrタグ等)をループさせる場合、 elementの返り値をElement#newでコピーして利用する。以前掲載したtest_xml.rbは次のよう…

Meteorの現状の問題点その10

ふと思いついて、テストしてみたところ、printメソッド内部の文字列結合処理が パフォーマンス上の最大のネックとなっていることが判明。 ググってみて、解決法を発見。 以前掲載したtest_xml.rbの10000ループがCore2 Duo 2.5GHzのマシンで 約20秒 -> 約2秒…