Skip to content

IntelSetrtnBenchmarking

Felix S. Klock II edited this page Jul 28, 2013 · 1 revision

Here are some numbers that I gathered that compare on two axes: how RETURN is compiled, and whether the SETRTN/JUMP peephole is enabled. (Sorry about the poor formatting. Maybe a graph would be nicer.)

The formatting is: [scheme-variant benchmark-name (elapsed-time cpu-time gc-time) compile-time]


RETURN uses jmp, SETRTN/JUMP off:         RETURN uses push;ret, SETRTN/JUMP off      RETURN uses push; ret, SETRTN/JUMP on         RETURN uses jmp, SETRTN/JUMP on
% mzscheme -qu auto.ss larceny	          % mzscheme -qu auto.ss larceny	     % mzscheme -qu auto.ss larceny                % mzscheme -qu auto.ss larceny    
[larceny conform (85 #f 3) 6645]          [larceny conform (91 #f 2) 7266]           [larceny conform (86 #f 2) 6753]	           [larceny conform (84 #f 2) 6707]
[larceny conform (92 #f 2) 6645]          [larceny conform (92 #f 2) 7266]	     [larceny conform (86 #f 3) 6753]	      	   [larceny conform (83 #f 2) 6707]
[larceny conform (85 #f 2) 6645]          [larceny conform (93 #f 2) 7266]	     [larceny conform (86 #f 2) 6753]	      	   [larceny conform (85 #f 3) 6707]
[larceny cpstack (446 #f 94) 239]         [larceny cpstack (471 #f 99) 253]	     [larceny cpstack (424 #f 95) 233]	      	   [larceny cpstack (436 #f 95) 245]
[larceny cpstack (472 #f 97) 239]         [larceny cpstack (447 #f 97) 253]	     [larceny cpstack (428 #f 90) 233]	      	   [larceny cpstack (438 #f 92) 245]
[larceny cpstack (434 #f 86) 239]         [larceny cpstack (457 #f 92) 253]	     [larceny cpstack (425 #f 96) 233]	      	   [larceny cpstack (435 #f 94) 245]
[larceny ctak (51 #f 5) 330]	          [larceny ctak (79 #f 5) 320]		     [larceny ctak (50 #f 4) 305]		   [larceny ctak (51 #f 4) 308]
[larceny ctak (50 #f 3) 330]	          [larceny ctak (51 #f 5) 320]		     [larceny ctak (48 #f 2) 305]		   [larceny ctak (50 #f 4) 308]
[larceny ctak (51 #f 4) 330]	          [larceny ctak (52 #f 3) 320]		     [larceny ctak (52 #f 3) 305]		   [larceny ctak (50 #f 2) 308]
[larceny deriv (52 #f 6) 559]	          [larceny deriv (64 #f 8) 591]		     [larceny deriv (53 #f 8) 550]		   [larceny deriv (52 #f 8) 556]
[larceny deriv (59 #f 10) 559]	          [larceny deriv (55 #f 8) 591]		     [larceny deriv (54 #f 9) 550]		   [larceny deriv (60 #f 9) 556]
[larceny deriv (50 #f 9) 559]	          [larceny deriv (58 #f 11) 591]	     [larceny deriv (54 #f 8) 550]		   [larceny deriv (52 #f 9) 556]
[larceny dderiv (68 #f 9) 842]	          [larceny dderiv (68 #f 9) 872]	     [larceny dderiv (68 #f 9) 839]		   [larceny dderiv (65 #f 10) 851]
[larceny dderiv (65 #f 10) 842]	          [larceny dderiv (69 #f 9) 872]	     [larceny dderiv (69 #f 10) 839]		   [larceny dderiv (65 #f 8) 851]
[larceny dderiv (77 #f 11) 842]	          [larceny dderiv (70 #f 10) 872]	     [larceny dderiv (69 #f 10) 839]		   [larceny dderiv (69 #f 11) 851]
[larceny destruct (33 #f 8) 446]          [larceny destruct (38 #f 10) 438]	     [larceny destruct (32 #f 9) 445]	      	   [larceny destruct (34 #f 9) 460]
[larceny destruct (34 #f 8) 446]          [larceny destruct (34 #f 10) 438]	     [larceny destruct (31 #f 9) 445]	      	   [larceny destruct (33 #f 10) 460]
[larceny destruct (33 #f 8) 446]          [larceny destruct (34 #f 9) 438]	     [larceny destruct (31 #f 9) 445]	      	   [larceny destruct (34 #f 10) 460]
[larceny div (40 #f 8) 439]	          [larceny div (40 #f 6) 492]		     [larceny div (40 #f 7) 446]		   [larceny div (40 #f 5) 451]
[larceny div (40 #f 9) 439]	          [larceny div (70 #f 4) 492]		     [larceny div (40 #f 7) 446]		   [larceny div (43 #f 9) 451]
[larceny div (41 #f 8) 439]	          [larceny div (41 #f 9) 492]		     [larceny div (41 #f 7) 446]		   [larceny div (40 #f 8) 451]
[larceny dynamic (1292 #f 285) 28329]     [larceny dynamic (1284 #f 295) 30350]	     [larceny dynamic (1309 #f 281) 28901]	   [larceny dynamic (1304 #f 284) 28790]
[larceny dynamic (1311 #f 291) 28329]     [larceny dynamic (1324 #f 299) 30350]	     [larceny dynamic (1204 #f 276) 28901]	   [larceny dynamic (1290 #f 279) 28790]
[larceny dynamic (1265 #f 279) 28329]     [larceny dynamic (1305 #f 285) 30350]	     [larceny dynamic (1292 #f 277) 28901]	   [larceny dynamic (1260 #f 279) 28790]
[larceny earley (543 #f 231) 4822]        [larceny earley (568 #f 232) 4847]	     [larceny earley (569 #f 226) 4709]	      	   [larceny earley (627 #f 276) 4751]
[larceny earley (563 #f 224) 4822]        [larceny earley (596 #f 235) 4847]	     [larceny earley (558 #f 222) 4709]	      	   [larceny earley (584 #f 224) 4751]
[larceny earley (540 #f 232) 4822]        [larceny earley (599 #f 235) 4847]	     [larceny earley (563 #f 220) 4709]	      	   [larceny earley (590 #f 221) 4751]
[larceny fft (7879 #f 599) 1020]          [larceny fft (8792 #f 594) 1016]	     [larceny fft (7862 #f 587) 1006]	      	   [larceny fft (7864 #f 625) 1027]
[larceny fft (7865 #f 591) 1020]          [larceny fft (8226 #f 607) 1016]	     [larceny fft (8531 #f 600) 1006]	      	   [larceny fft (7804 #f 617) 1027]
[larceny fft (7657 #f 609) 1020]          [larceny fft (7779 #f 610) 1016]	     [larceny fft (7870 #f 631) 1006]	      	   [larceny fft (7785 #f 579) 1027]
[larceny nboyer (4455 #f 2207) 1357]      [larceny nboyer (4488 #f 2183) 1412]	     [larceny nboyer (4481 #f 2177) 1354]	   [larceny nboyer (4520 #f 2174) 1379]
[larceny nboyer (4459 #f 2151) 1357]      [larceny nboyer (4702 #f 2252) 1412]	     [larceny nboyer (4497 #f 2163) 1354]	   [larceny nboyer (4402 #f 2130) 1379]
[larceny nboyer (4518 #f 2183) 1357]      [larceny nboyer (4505 #f 2157) 1412]	     [larceny nboyer (4441 #f 2168) 1354]	   [larceny nboyer (4531 #f 2163) 1379]
[larceny nfa (86 #f 4) 346]	          [larceny nfa (83 #f 5) 416]		     [larceny nfa (87 #f 2) 343]		   [larceny nfa (78 #f 3) 357]
[larceny nfa (77 #f 5) 346]	          [larceny nfa (86 #f 4) 416]		     [larceny nfa (86 #f 2) 343]		   [larceny nfa (78 #f 5) 357]
[larceny nfa (78 #f 4) 346]	          [larceny nfa (85 #f 2) 416]		     [larceny nfa (81 #f 4) 343]		   [larceny nfa (81 #f 7) 357]
[larceny nucleic2 (1083 #f 56) 49824]     [larceny nucleic2 (1068 #f 58) 50886]	     [larceny nucleic2 (1032 #f 47) 48540]	   [larceny nucleic2 (1026 #f 70) 48955]
[larceny nucleic2 (1151 #f 57) 49824]     [larceny nucleic2 (1032 #f 56) 50886]	     [larceny nucleic2 (1033 #f 51) 48540]	   [larceny nucleic2 (1058 #f 58) 48955]
[larceny nucleic2 (1029 #f 60) 49824]     [larceny nucleic2 (1089 #f 46) 50886]	     [larceny nucleic2 (1086 #f 42) 48540]	   [larceny nucleic2 (1049 #f 56) 48955]
[larceny puzzle (295 #f 0) 2058]          [larceny puzzle (330 #f 0) 2106]	     [larceny puzzle (317 #f 0) 2000]	      	   [larceny puzzle (298 #f 0) 2054]
[larceny puzzle (307 #f 0) 2058]          [larceny puzzle (315 #f 0) 2106]	     [larceny puzzle (318 #f 0) 2000]	      	   [larceny puzzle (294 #f 0) 2054]
[larceny puzzle (314 #f 0) 2058]          [larceny puzzle (300 #f 0) 2106]	     [larceny puzzle (299 #f 0) 2000]	      	   [larceny puzzle (311 #f 0) 2054]
[larceny sboyer (7919 #f 736) 1442]       [larceny sboyer (8069 #f 696) 1547]	     [larceny sboyer (7862 #f 700) 1413]	   [larceny sboyer (7646 #f 695) 1415]
[larceny sboyer (7837 #f 740) 1442]       [larceny sboyer (8157 #f 745) 1547]	     [larceny sboyer (7921 #f 702) 1413]	   [larceny sboyer (7625 #f 697) 1415]
[larceny sboyer (7898 #f 719) 1442]       [larceny sboyer (8113 #f 701) 1547]	     [larceny sboyer (7851 #f 700) 1413]	   [larceny sboyer (7652 #f 704) 1415]
[larceny sort1 (2343 #f 105) 676]         [larceny sort1 (2391 #f 101) 679]	     [larceny sort1 (2310 #f 99) 685]	      	   [larceny sort1 (2404 #f 100) 704]
[larceny sort1 (2200 #f 107) 676]         [larceny sort1 (2226 #f 102) 679]	     [larceny sort1 (2277 #f 99) 685]	      	   [larceny sort1 (2446 #f 103) 704]
[larceny sort1 (2370 #f 105) 676]         [larceny sort1 (2370 #f 100) 679]	     [larceny sort1 (2270 #f 97) 685]	      	   [larceny sort1 (2309 #f 100) 704]
[larceny tak (240 #f 0) 180]	          [larceny tak (192 #f 0) 180]		     [larceny tak (188 #f 0) 181]		   [larceny tak (231 #f 0) 179]
[larceny tak (257 #f 0) 180]	          [larceny tak (193 #f 0) 180]		     [larceny tak (191 #f 0) 181]		   [larceny tak (234 #f 0) 179]
[larceny tak (264 #f 0) 180]	          [larceny tak (196 #f 0) 180]		     [larceny tak (193 #f 0) 181]		   [larceny tak (232 #f 0) 179]
[larceny takl (670 #f 0) 385]	          [larceny takl (697 #f 0) 356]		     [larceny takl (615 #f 0) 350]		   [larceny takl (666 #f 0) 366]
[larceny takl (661 #f 0) 385]	          [larceny takl (682 #f 0) 356]		     [larceny takl (598 #f 0) 350]		   [larceny takl (678 #f 0) 366]
[larceny takl (668 #f 0) 385]	          [larceny takl (613 #f 0) 356]		     [larceny takl (585 #f 0) 350]		   [larceny takl (679 #f 0) 366]
[larceny takr (678 #f 0) 9037]	          [larceny takr (596 #f 0) 9003]	     [larceny takr (593 #f 0) 9228]		   [larceny takr (676 #f 0) 8805]
[larceny takr (678 #f 0) 9037]	          [larceny takr (601 #f 0) 9003]	     [larceny takr (597 #f 0) 9228]		   [larceny takr (677 #f 0) 8805]
[larceny takr (676 #f 0) 9037]	          [larceny takr (595 #f 0) 9003]	     [larceny takr (598 #f 0) 9228]		   [larceny takr (673 #f 0) 8805]
[larceny triangle (110 #f 0) 1077]        [larceny triangle (104 #f 0) 1100]	     [larceny triangle (108 #f 0) 1042]	      	   [larceny triangle (103 #f 0) 1074]
[larceny triangle (117 #f 0) 1077]        [larceny triangle (142 #f 0) 1100]	     [larceny triangle (104 #f 0) 1042]	      	   [larceny triangle (107 #f 0) 1074]
[larceny triangle (112 #f 0) 1077]        [larceny triangle (112 #f 0) 1100]         [larceny triangle (102 #f 0) 1042]            [larceny triangle (107 #f 0) 1074]

Here are those same benchmarks running on mzscheme circa 350. Note we seem pretty dismal on Puzzle...


[mzscheme3m conform (100 100 8) 73]
[mzscheme3m conform (100 101 8) 73]
[mzscheme3m conform (100 100 8) 73]
[mzscheme3m cpstack (656 655 96) 21]
[mzscheme3m cpstack (652 654 88) 21]
[mzscheme3m cpstack (656 658 80) 21]
[mzscheme3m ctak (688 696 48) 45]
[mzscheme3m ctak (688 697 60) 45]
[mzscheme3m ctak (692 690 72) 45]
[mzscheme3m deriv (236 240 40) 48]
[mzscheme3m deriv (232 233 32) 48]
[mzscheme3m deriv (236 237 20) 48]
[mzscheme3m dderiv (256 255 28) 48]
[mzscheme3m dderiv (248 247 20) 48]
[mzscheme3m dderiv (248 253 8) 48]
[mzscheme3m destruct (116 117 24) 24]
[mzscheme3m destruct (112 118 20) 24]
[mzscheme3m destruct (116 118 24) 24]
[mzscheme3m div (120 121 20) 21]
[mzscheme3m div (136 156 16) 21]
[mzscheme3m div (140 143 12) 21]
[mzscheme3m dynamic (2192 2225 764) 224]
[mzscheme3m dynamic (2224 2227 768) 224]
[mzscheme3m dynamic (2212 2238 768) 224]
[mzscheme3m earley (672 669 324) 79]
[mzscheme3m earley (656 665 328) 79]
[mzscheme3m earley (660 662 332) 79]
[mzscheme3m fft (25661 26395 8) 20]
[mzscheme3m fft (26053 27027 8) 20]
[mzscheme3m fft (25497 27420 8) 20]
[mzscheme3m nboyer (7700 8285 3816) 75]
[mzscheme3m nboyer (7444 7627 3760) 75]
[mzscheme3m nboyer (7480 7716 3796) 75]
[mzscheme3m nfa (184 184 16) 18]
[mzscheme3m nfa (176 175 24) 18]
[mzscheme3m nfa (176 176 12) 18]
[mzscheme3m nucleic2 (1380 1499 76) 1447]
[mzscheme3m nucleic2 (1396 1565 72) 1447]
[mzscheme3m nucleic2 (1388 1562 72) 1447]
[mzscheme3m puzzle (300 331 0) 86]
[mzscheme3m puzzle (304 326 0) 86]
[mzscheme3m puzzle (300 349 0) 86]
[mzscheme3m sboyer (10920 12145 1520) 42]
[mzscheme3m sboyer (10728 10928 1496) 42]
[mzscheme3m sboyer (10828 10915 1528) 42]
[mzscheme3m sort1 (2872 2904 204) 22]
[mzscheme3m sort1 (2888 3280 204) 22]
[mzscheme3m sort1 (2892 3296 204) 22]
[mzscheme3m tak (204 227 0) 17]
[mzscheme3m tak (208 245 0) 17]
[mzscheme3m tak (208 241 0) 17]
[mzscheme3m takl (1032 1164 0) 60]
[mzscheme3m takl (1036 1167 0) 60]
[mzscheme3m takl (1036 1171 0) 60]
[mzscheme3m takr (1220 1393 0) 150]
[mzscheme3m takr (1212 1373 0) 150]
[mzscheme3m takr (1188 1365 0) 150]
[mzscheme3m triangle (168 187 0) 21]
[mzscheme3m triangle (168 183 0) 21]
[mzscheme3m triangle (172 191 0) 21]
Clone this wiki locally