current impl. in OpenModelica
List Generation (s) impl_0 impl_1 impl_2 impl_3
List Elements Integer Real String Integer Real String Integer Real String Integer Real String Integer Real String
5 000 0,0000 0,0000 0,0000 0,1880 0,1250 0,1560 0,0000 0,0000 0,0000 0,0000 0,0150 0,0000 0,0000 0,0000 0,0000
10 000 0,0000 0,0000 0,0000 0,5780 0,5620 0,5620 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000 0,0000
50 000 0,0150 0,0000 0,0160 13,5620 13,5320 13,6250 0,0000 0,0000 0,0150 0,0000 0,0160 0,0000 0,0000 0,0160 0,0000
100 000 0,0310 0,0150 0,0000 56,6250 55,5150 55,7040 0,0000 0,0160 0,0000 0,0000 0,0160 0,0000 0,0000 0,0160 0,0000
500 000 0,1250 0,0620 0,0000 no run no run no run 0,0310 0,0320 0,0460 0,0160 0,0310 0,0310 0,0310 0,0160 0,0310
1 000 000 0,2500 0,1250 0,0150 no run no run no run 0,0630 0,0780 0,0940 0,0620 0,0470 0,0940 0,0620 0,0470 0,0470
5 000 000 1,2000 0,9000 0,0610 no run no run no run 0,7030 0,5000 0,3440 0,6090 0,3440 0,2660 0,6090 0,2190 0,2340
10 000 000 2,5000 1,5000 0,4000 no run no run no run 3,6100 2,3430 0,8440 3,5000 2,2340 0,7970 1,8910 1,9060 0,5610
30 000 000 14,4300   no run no run no run 8,4370   7,8280   13,3280  
50 000 000 23,4000   no run no run no run 18,6100   17,7750   no mem  
100 000 000 no mem no run no run no run no mem no mem no mem no mem no mem no mem no mem
See Util.mo
list generation tail-recursive list generation of integers and reals using clock() and strings as "a"
listMap_impl_3 non-tail-recursive with stack usage, conses the changed element after the recursive call to itself
listMap_impl_2 tail-recursive using an acumulator + listReverse at the end
listMap_impl_1 tail-recursive using listFold with list construction by cons and an acumulator + listReverse at the end
listMap_impl_0 tail-recursive using listFold with list construction by listAppend and an acumulator
List Elements generation impl_0 impl_1 impl_2 impl_3
5 000 0,0000 0,1880 0,0000 0,0000 0,0000
10 000 0,0000 0,5780 0,0000 0,0000 0,0000
50 000 0,0150 13,5620 0,0000 0,0000 0,0000
100 000 0,0310 56,6250 0,0000 0,0000 0,0000
500 000 0,1250 no run 0,0310 0,0160 0,0310
1 000 000 0,2500 no run 0,0630 0,0620 0,0620
5 000 000 1,2000 no run 0,7030 0,6090 0,6090
10 000 000 2,5000 no run 3,6100 3,5000 1,8910
30 000 000 14,4300 no run 8,4370 7,8280 13,3280
50 000 000 23,4000 no run 18,6100 17,7750 no mem
100 000 000 no mem no run no mem no mem no mem