Rj's SkaaRj Page_117


このシリーズ記事は、私Rjがあのおそろしい3Dゲーム unrealUnreal Tournament をやってみて思ったことなどを書いたのが由来です。今回は、新旧Jeditの検索/置換の速度比較、Mac関連の新着情報、アニメ日記、冬季五輪の感想などです。(2002.03.16)

  1. Jeditの復習
  2. We will Mac you.
  3. あに・・・
  4. 現状・・・

その百十七

1.Jeditの復習

Jedit1.08b5とJedit4.0.9(3)を較べてみました。と言っても、Jedit4にはあってもJedit1に無い機能が多い&他に適当なテストも思いつかなかったので、主に単純な検索/置換の速度を較べてます。

2002.03.10追記。nakamuxuさんの2002.03.10記事のコメント:「mi 相手では分が悪いかな、と。」を受けて、情け容赦なくmi 2.1b12 PPCのデータを追加。

準備

環境

二つのアプリを較べたいだけなので、適当に書きます。

#特にベンチ用のチューンはせず、常用環境そのまんま。

用意したテキストファイル

手元のSkaaRj1.htmlからSkaaRj100.htmlまでを使って作成。(現在webで公開しているものとは微妙に異なります。)

#Disk Copyで作成したimageをStuffIt ExpanderでRAM上にマウントし、全てそこに置いてます。

Jeditの設定

なるべく「同等」になるよう努力しつつ。

#「兄弟」だけに、かなり「近い」設定が可能です。

結果

以下、やたら時間の掛かるものを除いて数回試行した平均です。単位は「'」が分、「"」が秒。「1'15」だったら「一分十五秒」です。全て、数字が小さい方が「速い」ということになります。(2002.03.10追記。一番速かったのの背景をCSSで白くしてみました。)各項目の説明/考察は下で改めて。

#Jedit 1.08b5のことを「J1」、Jedit 4.0.9(3)のことを「J4」と書いたりします。

その一:Sk_1-100(3MB級)の場合

成り行きで、今回のテストの軸です。

Sk_1-100
revision起動作成開く<li>

りすとあいてむ
(6083)
skaarj

すかーるじ
(2443)
<!--

こめんと
(617)
ゲーム

game
(616)
h3

えいちさん
(512)
jedit

じぇいえでぃっと
(103)
えっちぃ

H
(71)
4.0.9(3)1"340'140'05"27'582'540'350'460'400'050'04
1.08b50"720'240'02"83'441'480'400'440'330'160'15
(mi 2.1b12)1"210'407'003'090'350'580'430'070'07

†手動/目視計測

起動

ここだけファイルには関係無くて、「Jbench」改によるアプリ起動時間のテスト。正確に言うと起動時間そのものより長い結果が出てますが、二つのアプリの差を見るには十分かと。

J1とJ4で0.6秒程の差が出ました。これが「一瞬で起動する」と「一拍待たされる」といった体感上の差に繋がってるのでしょうが、まあ、大差ないと言えば大差ないレベルです。

作成

SkaaRj1.htmlからSkaaRj100.htmlまでの100ファイルをFinderで選択し、Jeditの新規ウインドウを前面に出した状態でそこへdrag&dropして処理が終わるまでの時間。(実際にこういうことをやる機会は少ないかもしれませんけど・・・)

#miではどうやるのかわかりませんでした。

開く

ファイルを開くのに掛かった時間。Jbenchを改造して、アプリを起動したままの状態で同じファイルを「開く → 閉じる」×10回に掛かる時間からその平均を調べたかったのですが、J1でopen命令がうまく動きませんでした。代替策として、「起動&開く†† → 終了」×10回に掛かる時間を調べてます。よって、ここでの差には純粋にファイルを「開く」時間だけでなくアプリの起動及び終了に掛かる時間の差も加わっています。

††ファイルのクリエータを変えてFinderにやらせてますので、その分も微妙にのろくなってます。両者とも同じ条件ですけど。

#miはのろいので手動/目視での計測です。

残り七つ

「検索語 → 置換語(置換数)」です。手動/目視での計測。

置換数が多いとJ4はのろく、置換数が少なければJ4は素早い、という結果です。検索/置換の内部的なやり方が違ってるようです。(miはJ4と同じくらいですか。)

その二:Sk_1-100 x 10(30MB級)の場合

かなりでかいファイルなので、テスト項目は少なまくり。

Sk_1-100 x 10
revision開くえっちぃ

H
(710)
4.0.9(3)0'288'37
1.08b50'285'02
(mi 2.1b12 PPC)6'408'08

†割り当てメモリ20MBで開こうとするとメモリ不足アラート → 40MBに増やしたら二分程待たされてからメモリ不足アラート → 100MBに増やしたら開けた。

開く

アプリを起動してある状態で、対象ファイルを開くのにかかった時間。ここでは、手動/目視による計測です。

#コレの10倍、300MB級のファイルではどうなるのか興味あるところかもしれませんが、以前J3/J4でやってみて泣きをみた&下に書く「おまけ」のテスト結果からJ1では無理なんじゃないかという気がしたので、踏み込みません。

えっちぃ → H

全置換。置換数だけでその一の結果と見較べると、J1とJ4でほぼ同等の結果が出そうな領域ですが、ファイルサイズがでかいとJ4の方がかなりのろい、という結果になりました(miもJ4と同様)。

その三:Sk_91-100(500KB級)の場合

小さめのファイルでの試行です。(「開く」をやってないのは、J1/J4どっちでも大して待たされることなく開くからです。)

Sk_91-100
revision<

&lt;
(13881)
¥r

¥t
(4905)
li


(2265)
<li>

りすとあいてむ
(943)
skaarj

すかーるじ
(401)
4.0.9(3)11'181'140'160'050'02
108b51'150'270'150'130'06
(mi 2.1b12)4'091'220'240'100'06

#miではファイルを開くのに約六秒かかりました。

¥r → ¥t

改行をタブに。

ファイルが小さいと、置換数がかなり多めでもJ4は頑張ってます。置換数がすげえ多くなるとJ4はバクハツ的にのろくなるという弱点も判明しました。。。

その四:改行とインデントの削除

全て選択して改行とインデントを除去すると、HTMLファイルの「最小化」になりますね。そのテスト。

改行/インデント除去
revisionSk_91-100Sk_1-100Sk_1-100x10
4.0.9(3)0'52やる気無しやる気無し
1.08b5一瞬0'03メモリ不足でOS凍結
(mi 2.1b12)1'12やる気無しやる気無し
小さいファイルの場合

ですら、J4では待たされまくります。この時点でイヤになりました(miも同様)。J1は一秒未満。

3MB級ファイルの場合

J1では三秒ですが、J4ではこんな恐ろしいテストをやる気になれませんでした(miも同様)。

30MB級ファイルの場合

これは困った。J4でやったら三年くらい掛かりそうだし(miも同様)、J1では割り当てメモリを100MBにしてもダメです。「command + A → command + J」をやると、メモリが足りねえよとか言われて、そのダイヤログのOKボタンを押すとそのままOSごと凍りつきます。もしかしたら待ってれば動き出すのかもしれませんが、待ってられそうな雰囲気じゃなかったので本体の電源を落としました。強制再起動も出来なかったんだよもん。

#一つ付け加えておくべきこと。この操作、1.08b5と4.0.9(3)では結果が異なります。J1では全体が「一行」になりますが、J4だと空行は空行として残ります。J3からの仕様です。(miは改行の削除のみです。空行も残りません。)

まとめ

全置換中心のテストでしたが、ちょっと心外な結果が出ました。でかいファイル/たくさんの置換ではJedit4.0.9(3)って弱いらしいです。。。

最初はJedit2/Jedit3も含めたバトルをやろうかと思ってたんですけど、手間暇/根性の問題で端折りました。それから、マクロを使う場合等のテストもやりたかったんですが、J1はマクロ機能非実装なので出来ませんでした。(AppleScript自体には、非常に簡素な形ですが一応対応してます。)J4の相手としてJ2でなくJ1を選んだ理由は、「無料」ということもあって未だに愛用者が少なくないらしいからです。

他のエディタを全く取り上げてないのは・・・面倒だったから、というのが大きいのは言う迄も無いとして、私の知らないものでいいのがあったら教えて下さい、という部分もあります。ここでやってみたテストで対抗馬になりうるエディタって、案外少ないのではないでしょうか。JIS/LFを読めて、全置換機能搭載で、でかいファイルを現実的に扱えて、等。

そうそう、大事なこと。YooEditは速すぎるので、こういった面ではJeditの対抗馬になれません。 ;p

補足など

2002.03.10追記。nakamuxuさんの記事を見てmiでもやってみました。対象ファイルをdrag&dropで作成する方法がわからなかったのですが(RTFM! > Rj)、ファイルを開くのがすげえのろい点を除けば結構いい勝負でした。不勉強ごめんなせい。

m(_   _)m

2002.03.11追記。ありみかさとみさん@2002.03.10記事「mi と Jedit」。ご指摘の「HTML色付け遅延」の件、全部色付けしない設定(私に分かる範囲で、miでもそっち系の遅延が入らないようにがんばったつもり)です。色付け不能なJ1に合わせて。色付けしての比較はJ4とmiでなら可能かと思われますが、感覚的にはmiがちょっと不利になるのではないかと憶測・・・但し未検証。まあ、miにはJ4にない機能も多々ありますし、実際に扱うのは数十KB級以下のファイルが多いでしょうから左程気にならぬレベルかもしれませんが、私は(非常に感覚的な物言いですけど)色付けHTML編集時のmiの重さに悩んでたところへHTML色付け可能なJ3が出て来て助かったと思ったクチです。昔話ですけど。(h1-h6へのジャンプは自作マクロJ4HEPのcommand + option + Mで一発だよもん。それよりSkaaRj記事で見出し要素をちゃんと使え、って?あはは。)

紹介さんくす☆

#漏れてたらすみません。チェック力堕ちてます。。。

(2002.03.08-2002.03.10)

頁の先頭に戻る↑


2.We will Mac you.

主にMac関連の新着情報など。

(2002.02.21-2002.03.16)

頁の先頭に戻る↑


3.あに・・・

(2002.02.20-2002.03.16)

頁の先頭に戻る↑


4.現状・・・

(以上2002.02.19-2002.03.16)

頁の先頭に戻る↑


おまけのりんく



Rj's Chaotic Page
http://homepage.mac.com/rj_chaos/chaos/
mailto:rj-taka@t3.rim.or.jp
antithesis