実行中のコンピュータ(多分Mac)のCPUのバイトオーダーを取得するAppleScriptです。
これまで、MacのCPUは68k(Big Endian)→PowerPC(Big Endian)→Intel(Little Endian)と来て、次はARM。
一応、IntelとArmは同じLittle Endianなので問題は少ないはずですが、ARM DTKをお持ちの方は試してコッソリ教えていただけるとありがたいです。
この情報がAppleScriptで取得できると何か「いいこと」があるかですが、別にメリットはありません。
ただ、CPUの名前が取得できると、処理速度を推測できてよいでしょう。Intel CPUに対してApple Silicon(ARM)がどの程度のパフォーマンスを発揮できるのか、実機が出てこないとわかりませんけれども。
PowerPCからIntelに変わったときには、先読みが深くなったためか(?)連番ファイルの処理で問題が出て、書き直しが必要になったことがありました。IntelからARMへの移行時には、iOS系のアプリケーションの操作を試みて問題が出たり、セキュリティ上の制限にひっかかったりすることでしょう。
AppleScript名:CPUのバイトオーダーを取得.scpt |
— – Created by: Takaaki Naganoya – Created on: 2020/07/22 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions set bRes to getByteOrder() of me –> true –Little Endian on getByteOrder() set aRes to do shell script "sysctl -n hw.byteorder" if aRes = "4321" then return false –Big Endian (PowerPC) else return true –Little Endian (Intel, Arm..maybe) end if end getByteOrder |
Shane Stanleyからの投稿です。こっちの方がシンプルでいいですね。
AppleScript名:CPUのバイトオーダーを取得 v2.scptd |
— – Created by: Shane Stanley – Created on: 2020/07/23 — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions set bRes to current application’s NSHostByteOrder() — 1 = little endian, 2 = big endian, 0 = unknown |