AppleScript高速化テクニック
- ダウンロード商品¥ 3,000
【AppleScript中〜上級者け】【図を中心に構成、文字数すくなめ】 「AppleScriptは遅い」と主張する人と、そのように主張しない人がいます。 おそらく、どちらの感想も正しいのです。遅いと主張する人は、知らず知らずのうちに「遅くなる書き方」を選択。遅く感じない人は、「遅くならない書き方」を選択しているためです。自分が書いたScriptが遅く動いていれば、遅いと主張することは無理のないことでしょう。 ただし、それが「速く動く書き方」を知らないとか、本来は速く動くことを知らないとか、いくつもの方法で処理できたとしても試していないということが理由であり、「とりあえず動くScript」を書けるようになったスクリプターが陥りがちなポイントでもあります。 ScriptでGUIアプリケーションを操作するさいには、GUIアプリケーション内部で行われる処理内容はまったく見えません。ブラックボックスです。 つまり、実際に試して動かしてみないと、どのような挙動を行うかは分かりません。Script的なロジックのスマートさと、実際に処理速度の速い処理というものはイコールでない場合が多々あります。 本書では、本来の速度で動くAppleScriptのパワーを引き出すために、いろいろ書き換えるためのノウハウや方法論について、実際にサンプルコードを提示してご紹介します。 PDF 86ページ、掲載サンプルScriptのZipアーカイブつき
目次(作成中のもの)
■AppleScriptは遅いのか? 書き方によって速度差が出やすいAppleScript ①大規模データ操作時の固有ノウハウ ②GUIアプリ操作の固有ノウハウ ③各アプリ固有の操作ノウハウ ④適材適所 ⑤連携運用できるプログラムなどへの知識 まとめ:AppleScriptは遅いのか? ■遅いScriptを実際に高速化 とても遅くて下手なScriptのサンプル 素人Scriptからの高速化:さまざまな方向から Script高速化の第一歩は「時間計測」 下手なScriptは、少ないデータ件数では目立たない 高速化ポイント1:一括取得 高速化ポイント1:一括取得 高速化ポイント2:受け取ったデータの保持 高速化ポイント3:受信データの変換 高速化ポイント4:rangeの変換処理を自前で 素人Scriptを高速化①:データ保持方法を変える 素人Scriptを高速化②:通信頻度を減らす ■高速化しやすい処理の傾向 AppleScriptの処理で高速化しやすい箇所 Finderをファイル処理に使わない① Finderをファイル処理に使わない② 1次元リスト(配列)のソート 1D Listのソート 1D Listのソート 2次元リスト(配列)のソート 2D Listのソート(1/2) 2D Listのソート(2/2) 2D Listのソート アプリケーションのオブジェクトへのアクセス 画面部品を強引に動かすGUI Scripting 指定の値をクリップボードに入れる 遅くなりがちな処理を避ける 漠然と「遅い」と言われた処理の傾向 スクリプトエディタとAppleScript間の通信① スクリプトエディタとAppleScript間の通信② ■データ量と処理内容のバランスを取る 複数アクセス方法すべてで実行速度を計測 リスト(配列)データの要素数によって変わる選択肢 1000〜3万件文字列追加+時間計測 まとめて操作できるデータを個別操作 要素が連続する部分をリスト上で検出 まとめて書式設定(1/2) まとめて書式設定(2/2) RTF読み取りライブラリ(1/2) RTF読み取りライブラリ(2/2) RTF読み取りライブラリ(rtfToDict)の結果 非同期実行モードの利用 Numbersの表のセルを100個埋めるテスト 処理対象に応じて因数分解を行う部品を変更 ■処理内容を見直す &使用部品を変える AppleScriptの速いバージョンのmacOSを選択 処理に使用する部品を変更(乱数生成) 処理に使用する部品と方式を変更 処理モジュールを一体化 使用するマシン構成を変更:複数のマシンで分散処理 使用するマシンを変更:本当に速いマシンを使う ■ランタイム環境の選択 AppleScriptのさまざまな実行環境 AppleScript実行環境の名称を取得する方法 エディタ① エディタ② エディタ③ アプレット,ドロップレット① アプレット,ドロップレット② メニュー実行① メニュー実行② メニュー実行③ その他実行プログラム① その他実行プログラム② その他実行プログラム③ アプリケーション内蔵メニュー① アプリケーション内蔵メニュー②