●要素数が少ない場合のリストの参照
要素数が多いリストをあつかう場合、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}