Objective-Cによる高速化?

USのAppleのAppleScript Studioエンジニアリング担当者が、テーブルビューにリストの内容を追加するサンプルを出していた。

Objective-Cのほうが遥かに高速、という触れ込みで、AppleScriptよりもObjective-Cが速いということを示すサンプルだった。

そのサンプルをじっくり分析してみたところ、

「これじゃあ、遅くなって当たり前じゃん!(^ー^;」


という書き方がなされていた。


さくっと命令を最適化して書き換えたところ、Objective-Cとたいして変わらなくなった(ーー;; 


2004-08-29 01:53:48.827 Table Support[2294] "begin addAttributesUsingAppleScript"
2004-08-29 01:53:48.925 Table Support[2294] "end addAttributesUsingAppleScript"
2004-08-29 01:54:03.715 Table Support[2294] "begin addAttributesUsingObjectiveC"
2004-08-29 01:54:03.799 Table Support[2294] "end addAttributesUsingObjectiveC"


 AppleScriptで、0.098秒
 Objective-Cで、0.084秒


どういうことなんだろう……Objective-Cのプログラムを呼び出すブリッジ部分(call method命令)のオーバーヘッドが大きいからではないか、ぐらいのことは考えてもみるが……結局、call method命令なしにはObjective-Cのプログラムを呼び出せないので、これなしで論じるわけには行かない。


とりあえず、彼が示そうとしたものがなんだったのか、よく分らなくなったのだった。


わざと遅い書き方をしてどーーするのよ?

Copyright By Piyomaru Software. All Rights Reserved