Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

開発機としてM2 Mac miniが来たのでガチレビュー

Posted on 7月 2 by Takaaki Naganoya

目下、AppleScriptで組んだ割と大きな規模(中規模ぐらい?)のシステムのアップデート開発依頼を受けて、開発機としてM2 Mac mini(RAM 8GB)が手元に来ています(開発機なので、終わったら返却しますが……)。

このため、M1 Mac mini(macOS 13.6.7)、M2 Mac mini(macOS 14.5)、そしてオリジナルのシステムが動いているIntel Mac mini(2014)(macOS 10.12.6)の3台が積み上がっている状態です。さして場所をとっていませんが……。

# 新規導入したMacBook Air M2 15インチ(RAM 16GB)の結果も追記しています

M2 Mac miniがどの程度M1 Mac miniからスピードアップしているのか、についてはこれまで比較する機会がありませんでした。店頭でちょっとさわって試すぐらいだと、単純ループ10億回とかの「実用性皆無」な内容でチェックするほかありませんでした。

いまのコンピュータは速くなっている箇所とそうでもない箇所の「差」が大きくなっていて、特定分野の処理だけやたら速くなっている(あるいはその逆も)という現象をよく見かけます。

そこで、いろんな分野のAppleScriptで実行速度を比較してみました。

■Pages書類の全書き出しとソート+連結

実際の、本気で業務をまるごとこなすようなAppleScriptのシステムを動かすと、どうなるんでしょうか?

たとえば指定フォルダ以下のPages書類をSpotlight検索ですべてピックアップして個別にPDF書き出しを行い、ファイル名順に連結するようなAppleScriptがあります。

ちょうど、いま作っている書籍「Pages+AppleScriptで本を作ろう!」が現段階で320ページなので、テスト用には十分な規模でしょう。

これを処理すると、

  M1 Mac mini(RAM 16GB):2分35秒
  M2 Mac mini(RAM 8GB):2分30秒

と、M1よりは若干速いものの、騒ぐほどではないぐらいの差でした。誤差範囲内といってよいでしょう。数回書き出しを行なって落ち着いた結果を採用しています(初回はどうもキャッシュせずに遅くなるようで)。

■8,000箇所の駅×700箇所の位置情報の距離計算とソート

日本全国の鉄道駅8,000箇所と全国700箇所(当時)のゲームセンター施設の距離計算を行い、「最寄駅が一番遠いゲームセンター」を計算するAppleScriptを試してみました。このぐらいの規模の処理なら、割と現実的なシステムといえるでしょう。

  M1 Mac mini(RAM 16GB):1分 31秒
  M2 Mac mini(RAM 8GB):1分 23秒
  M2 MacBook Air(RAM 16GB):1分 28秒

数回実行してみましたが、ほぼ同じ結果になりました。9%ぐらいM2が高速です。さきほどの結果よりも性能向上幅が大きくなっています。

■指定桁の順列組み合わせ計算(Permutation)

このあたりから、様子がおかしくなってきます。結果は結果として受け取らざるを得ないのですが、振れ幅がおかしい。9桁のデータの順列組み合わせ計算で、

  M1 Mac mini(RAM 16GB):62.7379秒
  M2 Mac mini(RAM 8GB):30.564秒
  M2 MacBook Air(RAM 16GB):44.905秒

M1→M2 Mac miniで約2倍。

■Numbersの選択中のセル(1000×5)への値の設定

GUIアプリであるNumbersの表の選択範囲(1,000行×5列)に対して、連続する値を書き込むテストです。Numbersは表からの値の取得が高速である反面、値の書き込みについては信じられないほど遅くなるという特性を持っています。この、Numbersの表データ設定はさまざまな「回避技」を生むことにもなっています。

ひとえに、このNumbersへの書き込み処理に時間がかかるためです。これを比較すると、

  M1 Mac mini(RAM 16GB):96.3056秒
  M2 Mac mini(RAM 8GB):35.1062秒
  M2 MacBook Air(RAM 16GB):43.649秒

おおよそ、M2が2.7倍速いという結果になりました。意味がわかりません。

一応、AppleScriptのバースト実行モード=アプリ側の応答を待たずに値設定を行う「ignoring application responses」指定で実行すると、

  M1 Mac mini(RAM 16GB):2.76秒
  M2 Mac mini(RAM 8GB):2.42秒
  M2 MacBook Air(RAM 16GB):0.77秒??????

と、処理時間の短縮が頭がおかしいレベル(通常は指定前の33%ぐらいの時間になる)であるものの、CPU間の差は10%程度と、納得できるレベルに落ち着きます。

ちなみに、Numbers側はAppleScriptが処理を終了したあとも処理を継続し、当初と同じぐらいの時間で処理を終えました。

■画像の空白検出

上位機種でトンでもなく(遅い)結果が出たりと、さまざまな場所で物議をかもしている、画像の空白検出処理。

処理速度を測る場合には、他のプログラムをなるべく起動しないとか、いろいろ条件を揃えてあげる必要があるわけですが、今回も波乱の結果を出すものでしょうか。慎重を期して、10回実行して平均値を取っています。単位は秒で、数値が小さく、バーが短いほうが高速です。

1×1の画像処理については、データが小さすぎて傾向をつかむのには適していないようですが、4Kや8Kの画像を扱うとM1より遅い処理を見かけます。

グラフにすると、

こんな感じで……M2のほうがわずかに遅い処理が散見されます。正直、このベンチマークは4Kとか8KとかフルHDの画像の1つの点だけ点灯しているものを検出しろというもので、実用性はあるものの、ベンチマークとしては特殊な内容といえるでしょう。

■総評

ときおり、目が覚めるような処理速度を叩き出すことがあると思えば、日常的に動かしている処理だと5〜10%程度の処理速度向上におさまっています。全体的には、ほぼこのような評価になることでしょう。

同じく16GBのRAMを搭載しているマシンであるとか、上位機種のM2 Proを搭載したマシンではどうなのかといった検証を行いたかったところです(手元にないのでテストできないのですが)。

ただ、決してM2 miniはM1より遅いということはありませんし、M1からの買い替えという話は同意できないものの、悪くないマシンだと思います。

More from my site

  • デフォルトインストールされたフォント名を取得するAppleScriptデフォルトインストールされたフォント名を取得するAppleScript
  • AppleScriptでMyriad Tables Libが使えないケースAppleScriptでMyriad Tables Libが使えないケース
  • メキシカンハット v3aメキシカンハット v3a
  • メキシカンハット v3メキシカンハット v3
  • YouTube Picture In Pictureウィンドウの制御YouTube Picture In Pictureウィンドウの制御
  • 国民の祝日を求める v7国民の祝日を求める v7
(Visited 47 times, 1 visits today)
Posted in Benchmark | Tagged 13.0savvy 14.0savvy | Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 13.6.5 AS系のバグ、一切直らず
  • Apple純正マウス、キーボードのバッテリー残量取得
  • PowerPoint書類の各スライドのタイトルを取得
  • 指定画像をbase64エンコード文字列に変換→デコード
  • CotEditorで2つの書類の行単位での差分検出
  • macOS 14の変更がmacOS 13にも反映
  • Finder上で選択中のPDFのページ数を加算
  • Cocoa-AppleScript Appletランタイムが動かない?
  • ディスプレイをスリープ状態にして処理続行
  • 与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3(ベンチマーク用)
  • macOS 13 TTS環境の変化について
  • 当分、macOS 14へのアップデートを見送ります
  • macOS 14、英語環境で12時間表記文字と時刻の間に不可視スペースを入れる仕様に
  • Adobe AcrobatをAppleScriptから操作してPDF圧縮
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • HammerspoonでLuaを実行
  • 初心者がつまづきやすい「log」コマンド
  • 新刊発売 AppleScript最新リファレンス v2.8対応
  • macOS 14, Sonoma 9月27日にリリース
  • PowerPointで最前面の書類をPDF書き出し

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (435) 11.0savvy (279) 12.0savvy (199) 13.0savvy (107) 14.0savvy (52) CotEditor (62) Finder (48) iTunes (19) Keynote (105) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (59) Pages (44) Safari (43) Script Editor (23) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • diff
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC