Da hast du sicher eine Menge Messungenauigkeit durch das Multitasking mit drin...
EDIT: Ich hab mir mal den erzeugten Assembler-Code angesehen.
Bei length(a)+1 ist es (vereinfacht) das:
Delphi-Quellcode:
call @DynArrayLength
inc eax
Bei high(a)+2 das:
Delphi-Quellcode:
call @DynArrayHigh
add eax, 2
@DynArrayHigh sieht so aus:
Delphi-Quellcode:
call @DynArrayLength
dec eax
Man sieht also: Die length-Methode ist um ein paar Anweisungen kürzer. Das fällt natürlich überhaupt nicht ins Gewicht, da die length-Methode aber darüber hinaus auch verständlicher ist, würde ich diese bevorzugen.