From: "M. Edward (Ed) Borasky" Date: 2007-09-24T11:57:20+09:00 Subject: Latest benchmarks --------------090105030007030309040301 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit I just ran the benchmark suite that comes with Ruby 1.9 on my 32-bit machine (1.3 GHz Athlon Thunderbird). The two versions of Ruby are 1.8.6-p110 and Ruby 1.9.0 revision 13500 from the SVN repository. Both were compiled "-march=athlon-tbird -O3" with gcc 4.2.0. Here are the numbers -- if you've got OpenOffice, I've attached the spreadsheet: benchmark 1.8.6-p110 1.9.0-r13500 ratio log ratio app_answer 2.66 0.2 13.49 2.6 app_factorial 1.8 1.37 1.32 0.28 app_fib 16.54 2.44 6.77 1.91 app_mandelbrot 5.55 2.36 2.35 0.86 app_pentomino 256.81 80.46 3.19 1.16 app_raise 3.03 4.11 0.74 -0.31 app_strconcat 2.82 1.92 1.47 0.38 app_tak 21.28 3.82 5.57 1.72 app_tarai 17.02 3.07 5.54 1.71 loop_generator 83.06 3.57 23.27 3.15 loop_times 15.55 4.93 3.16 1.15 loop_whileloop 26.56 2.73 9.74 2.28 loop_whileloop2 3.65 0.55 6.67 1.9 so_ackermann 48.52 3.19 15.21 2.72 so_array 15.95 5.51 2.89 1.06 so_concatenate 6.84 1.73 3.96 1.38 so_count_words 0.94 0.01 72.38 4.28 so_exception 6.47 5.77 1.12 0.11 so_lists 2.44 1.25 1.95 0.67 so_matrix 4.35 1.47 2.97 1.09 so_nested_loop 15.57 4.5 3.46 1.24 so_object 14.24 6.45 2.21 0.79 so_random 4.86 1.75 2.79 1.03 so_sieve 1.2 0.3 3.97 1.38 vm1_block 63.43 9.74 6.51 1.87 vm1_const 34.22 4.3 7.95 2.07 vm1_ensure 47.44 3.37 14.1 2.65 vm1_length 35.18 7.36 4.78 1.56 vm1_rescue 32.69 2.86 11.41 2.43 vm1_simplereturn 55.13 6.5 8.49 2.14 vm1_swap 42.12 5.03 8.38 2.13 vm2_array 10.96 5.05 2.17 0.77 vm2_case 8.36 1.15 7.28 1.98 vm2_method 37.23 7.79 4.78 1.56 vm2_mutex 14.45 5.39 2.68 0.99 vm2_poly_method 43.42 8.46 5.13 1.64 vm2_poly_method_ov 8.04 1.4 5.75 1.75 vm2_proc 14.49 2.84 5.11 1.63 vm2_regexp 7.87 5.6 1.4 0.34 vm2_send 9.55 1.56 6.11 1.81 vm2_super 12.08 2.41 5.01 1.61 vm2_unif1 9.06 1.54 5.87 1.77 vm2_zsuper 13.18 2.52 5.22 1.65 vm3_thread_create_join 0.03 0.26 0.1 -2.31 vm3_thread_mutex 281.97 1.91 147.86 5 Min 0.1 -2.31 P05 1.1 0.14 P10 1.4 0.35 P25 2.8 1.02 P50 5.1 1.62 P75 6.9 1.93 P90 12.8 2.55 P95 15.0 2.71 Max 72.4 4.28 Notes: Column 1 is the benchmark name Column 2 is the time for 1.8 Column 3 is the time for 1.9 Column 4 is the ratio of 1.8 time / 1.9 time Column 5 is the log to the base e (natural log) of the ratio. The statistics below are derived from these natural logs. Specifically, Min is the worst case ratio from the test suite, Max is the best case ratio from the test suite, and Pxx are the percentiles. What these mean is that xx percent of the time, you can expect the ratio to be *below* that value. So, since P50 is 5.1, half of the time you can expect the ratio to be below 5.1 and half of the time you can expect it to be above 5.1. Only 25 percent of the time is the ratio below 2.8 percent, etc. So ... in a nutshell ... 1.9.0 is five times as fast as 1.8.6! I can do fancier stuff in R, but I probably won't -- 5x is easy to remember. --------------090105030007030309040301 Content-Type: application/vnd.oasis.opendocument.spreadsheet; name="bench.ods" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="bench.ods" UEsDBBQAAAAAANIUODeFbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu b2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQAAAAAANIUODcAAAAAAAAAAAAA AAAaAAAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwMEFAAIAAgA0hQ4NwAAAAAAAAAA AAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgA AAAAAgAAAAAAAABQSwMEFAAAAAAA0hQ4NwAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9u czIvZmxvYXRlci9QSwMEFAAAAAAA0hQ4NwAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9u czIvcG9wdXBtZW51L1BLAwQUAAAAAADSFDg3AAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRp b25zMi9wcm9ncmVzc2Jhci9QSwMEFAAAAAAA0hQ4NwAAAAAAAAAAAAAAABgAAABDb25maWd1 cmF0aW9uczIvbWVudWJhci9QSwMEFAAAAAAA0hQ4NwAAAAAAAAAAAAAAABgAAABDb25maWd1 cmF0aW9uczIvdG9vbGJhci9QSwMEFAAAAAAA0hQ4NwAAAAAAAAAAAAAAAB8AAABDb25maWd1 cmF0aW9uczIvaW1hZ2VzL0JpdG1hcHMvUEsDBBQACAAIANIUODcAAAAAAAAAAAAAAAALAAAA Y29udGVudC54bWzdXW1v4ziS/n6/ohHsh70PVsjie7a7F3u7fcAC04PB7R4wwGAQKLaSaMe2 DEnudO7XX1FyEjITv1SadNw7mHGGIiVS1MNiVT1F8v2fvy7m775UbVc3yw9nvGBn76rltJnV y5sPZ//7z/+e2LM/f/yP9831dT2tLmbNdL2olv1k2ix7/PsO7152F2Puh7N1u7xoyq7uLpbl ouou+ulFs6qWD3ddhKUvhrrGK11/Pz/49qFweHdffe0PvdmXje4trw6veSgc3j1ry7tDb/Zl sVPD26+bQ2/+2s0n1w32+mJV9vWzVnyd18vfPpzd9v3q4vz87u6uuBNF096cc+fc+ZD72ODp Y7nVup0PpWbT82pe+cq6c17w84eyi6ovD22fLxs2ableXFXtwV1T9uXvvuqqrTosgq/rgXnY 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 dC54bWxQSwUGAAAAAA8ADwDuAwAAJzcAAAAA --------------090105030007030309040301--