イケッチロゴ

Applescript実験室

イケッチトップページ

作品

リンク


Applescript実験室

自作スクリプト


●要素数が少ない場合のリストの参照

要素数が多いリストをあつかう場合、a reference to は速度向上に有効な手段です。では「要素数が少ない場合はどうか?」ということで今回は、
(1)リストの要素を直接取得した場合
(2)参照形式にしたリストの要素を取得した場合
(3)レコードの中のリストの要素を取得した場合
(4)参照形式にしたレコードの要素を取得した場合
それぞれ要素数が1、10、50、100の場合で時間計測を行ってみました。
要素数が少ない場合、リストを参照形式にすると遅くなることがわかりました。
レコードを参照形式にした場合は、要素数が1つの時点で、参照形式にしていないレコードとほぼ同タイムです。


set timeList to {}

set N to {}

set NRef to a reference to N

set aRec to {N:{}}

set aRecRef to a reference to aRec


repeat 1 times --ここの繰り返し回数でリストの要素数を調整

set end of NRef to 100

end repeat

set N of aRecRef to N


--(1)直接リストの要素を取得した場合

set T to current date

repeat 1000000 times --時間計測のため1000000回繰り返す

item 1 of N

end repeat

set end of timeList to (current date) - T


--(2)参照形式にしたリストの要素を取得した場合

set T to current date

repeat 1000000 times --時間計測のため1000000回繰り返す

item 1 of NRef

end repeat

set end of timeList to (current date) - T


--(3)レコードの中のリストの要素を取得した場合

set T to current date

repeat 1000000 times --時間計測のため1000000回繰り返す

item 1 of N of aRec

end repeat

set end of timeList to (current date) - T


--(4)参照形式にしたレコードの中のリストの要素を取得した場合

set T to current date

repeat 1000000 times --時間計測のため1000000回繰り返す

item 1 of N of aRecRef

end repeat

set end of timeList to (current date) - T


get timeList


--結果(1要素の場合){6, 39, 8, 8}
--結果(10要素の場合){10, 40, 11, 8}
--結果(50要素の場合){27, 39, 29, 8}
--結果(100要素の場合){48, 40, 51, 8}

Iketch Design Office, All Rights Recerved.