Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!van-bc!ubc-cs!kiwi!eric.mpr.ca!murphy From: murphy@eric.mpr.ca (Gail Murphy) Newsgroups: comp.lang.eiffel Subject: Mosaic Benchmark on other platforms Message-ID: <2110@kiwi.mpr.ca> Date: 27 Mar 90 18:42:20 GMT Sender: news@eric.mpr.ca Reply-To: murphy@eric.mpr.ca (Gail Murphy) Organization: Microtel Pacific Research Ltd., Burnaby, B.C., Canada Lines: 104 Recently, Kim Rochat posted an article about the performance of Eiffel vs. C++ vs. Smalltalk for the Mosaic program. Included was source code for the benchmark. Being curious, I tried this benchmark on: + a VAXStation 3100 running Ultrix 3.0 with Eiffel V2.2 (Level A) + a VAXStation 3100 running Ultrix 3.0 and G++ (Version 1.36.2 based on GCC 1.36) The Eiffel generated C-package was also moved to the following platforms: + an Apollo 3500 running SR10.2 + a Sun-3/60 running SunOS 4.0.1 Both of these packages were compiled using the respective platforms CC compilers. The results were: Host Language Compiler Execution Time (secs) Executable Size User System Wall Text Data BSS ---- -------- -------- ---- ------ ---- ---- ---- --- VAX 3100 Eiffel gcc 154.2 176.4 5:55 64512 6144 5028 VAX 3100 c++ g++ 49.1 5.7 1:00 29696 3072 1868 Ap 3500 Eiffel Apollo CC 137.1 4.5 2:27 68060 11204 2552 Sun-3/50 Eiffel Sun CC 163.9 273.7 7:21 90112 16384 0 These results are significantly different from the results posted previously, where the authors found: > While bearing in mind that mosaic is a small program exercising a > limited subset of the languages, two major conclusions can be drawn. > First, any perception that C++ has superior performance to Eiffel may > be invalid. Second, if you're using Eiffel, a different C compiler may > result in significantly increased performance. The executions were conducted as described in the previous article. (ie. Eiffel C-package generation was used with no assertions, the program was run twice in succession, etc.). Similar results were found using the Ultrix CC compiler. The following differences to the previous benchmark (besides Host) exist: + the platforms have 8Mb memory as compared to 12Mb Hosts in the previous benchmark + different versions of g++ and Eiffel were used. Use of prof on the Eiffel C-package outputs (the first 10 lines): %time cumsecs #call ms/call name 36.3 210.061637611 0.13 _sigblock 12.1 279.99 mcount 10.8 342.59 997002 0.06 __0a8005_row_contrastcolorcanappearat 5.8 375.97 _c1_item 5.4 407.151637611 0.02 _setjmp 5.3 437.85 1000 30.69 __0a8000_row_create 3.6 458.61 _c1_put 2.9 475.46 633603 0.03 __0a9001_random_dont_care 2.7 490.96 633603 0.02 _random 2.4 504.76 _c_put A profile of the Eiffel C-package on the Apollo, however, did not reveal anytime spent in _sigblock. A profile of the g++ code was not possible as the -p and -pg options are not yet supported. The call to sigblock (an operating system routine) seems to come from the SETJMP2 macro. The SETJMP2 and OUTJMP2 calls in the row_contrastcolorcanappearat routine were commented out (I think this disables proper exception handling). This resulted in the following: Host Language Compiler Execution Time (secs) User System Wall ---- -------- -------- ---- ------ ---- VAX 3100 Eiffel gcc 109.8 66.5 2:58 Ap 3500 Eiffel Apollo CC 111.1 4.4 1:58 Sun-3/50 Eiffel Sun CC 109.2 106.6 3:36 There is a notable cost, then, for performing the SETJMP2 and OUTJMP2 macros. Is this a change from Eiffel Version 2.1? Why else are the results of the benchmarks remarkably different? Is there a more performance cost efficient means for performing these actions? Has anyone else tried these benchmarks on the same or other platforms? What results have you obtained? Gail Murphy | murphy@joplin.mpr.ca Microtel Pacific Research | joplin.mpr.ca!murphy@uunet.uu.net 8999 Nelson Way, Burnaby, BC | murphy%joplin.mpr.ca@relay.ubc.ca Canada, V5A 4B5, (604) 293-5462 | ...!ubc-vision!joplin.mpr.ca!murphy Gail Murphy | murphy@joplin.mpr.ca Microtel Pacific Research | ubc-cs!eric!murphy@UUNET.UU.NET 8999 Nelson Way, Burnaby, BC | murphy%joplin.mpr.ca@relay.ubc.ca Canada, V5A 4B5, (604) 293-5462 | ...!ubc-vision!joplin.mpr.ca!murphy