Article View: be.comp.programming
Article #11025Re: oproep aan de programmeurs:wat moet ik kiezen ?
From: Sjoerd Schreuder
Date: Mon, 18 Feb 2002 17:10
Date: Mon, 18 Feb 2002 17:10
81 lines
5279 bytes
5279 bytes
Pieter Philippaerts wrote: > > "Sjoerd Schreuder" <sa_schreuder@wanadoo.nl> wrote in message > news:3C706D11.C90F42C2@wanadoo.nl... > > Het is geen kunst om sneller te zijn dan trage producten zoals VB. > > > > De ene link waarin wel met C++ werd vergeleken, bleek unmanaged C++ code > > sneller te zijn dan managed C++ en C#. > > Nochthans beweert die Duitse powerpoint presentatie net het > tegenovergestelde :-) > (leuk toch die benchmarks, je kan ze draaien exact hoe je ze wil) Inderdaad. Dat ga ik hieronder toch ook eventjes doen. > Hun resultaten voor bijvoorbeeld een iteratie van 1 miljard keer was voor > VC6 10.172 seconden, VC7 unmanaged 10.172 seconden, VC7 managed 5.312 > seconden en C# 4.015 seconden (das dus een snelheids verschile van 2x in > managed tov niet-managed code). Je bedoelt: 2x in geoptimaliseerde code t.o.v. ongeoptimaliseerde code. Wel graag er even bijvermelden dat de VC6 en VC7 tijden op debug executables zijn bepaald. Dan zijn automatisch alle optimalisaties uitgeschakeld. Die moesten ze ook uitschakelen, want zelfs VC6 optimaliseert een lege loop helemaal weg en komt dus normaal gesproken op 0.0 seconden uit. Dus die 2x is appels met peren vergelijken. > Natuurlijk was dat maar 1 van de testen die die mensen uitgevoer hebben... En het geeft me de kriebels over het niveau van de overige testen. > Bewerkingen met floating points gingen dan weer in het ene geval trager in > managed code, in het andere geval even snel als managed code (afhankelijk > van de formule). Dat zal wel weer met die debugversie te maken hebben. > StringBuilder operaties (appenden in dit geval) waren dan weer 0.468 seconden > in C# terwijl (gebufferde) CString operaties in unmanaged C++ 0.703 seconden duurde. > Kopieren van strings met memcopy was dan weer iets sneller als het kopieren dmv. > een StringBuilder. Waar is de standaard string van C++, std::string? In een CString wordt de lengte niet opgeslagen, dus als je append moet eerst het einde worden opgezocht. Waarschijnlijk kun je daarmee al het snelheidsverschil mee verklaren. std::string slaat wel de lengte op, en zal dus waarschijnlijk wel sneller werken. Ze vergelijken wel met een char-array en memcpy, en die is veel sneller. Maar die wordt gelijk opzij geschoven onder het mom "dat is ouderwets". Tja, zo kan ik het ook: het ene alternatief gewoon niet noemen, en een ander alternatief als "achterhaald" afdoen alhoewel het veel sneller is. > Zo gaat het verder... de ene keer is managed code sneller, de andere keer > unmanaged. Mijn indruk is dat ze niet alle mogelijkheden van C++ hebben benut. > Het belangrijkste resultaat, neem ik aan, is het laatste: de resultaten van > de 'ByteMark' benchmark. Daarin scoort C# beter als VC6 maar minder als VC7. Zucht, ze gebruiken /O1. Dat is optimaliseren voor size, en niet voor snelheid. Als ze dat al fout doen... [Even muggenziften: Het is "beter dan"] > Het leuke is dat dus al deze vergelijkingen met C++ zijn gedaan en aangezien over > het algemeen aangenomen wordt dat C++ een hoog performante taal is > (of toch 'kan zijn'), kan je ook hetzelfde aannemen voor C# en VB.NET. Let op je eigen 'kan zijn'. Bij deze benchmark is niet het maximale uit C++ gehaald. Daardoor kan ik de uitkomsten van de benchmark niet serieus nemen. Sjoerd Schreuder PS: Sterker nog, als zelfs met zulke verdraaiingen C++ nog in de buurt van C# komt, dan denk ik dat echt geoptimaliseerd C++ rondjes draait rond C#.
Technical Details
Message-ID:
<3C71356C.369677EC@wanadoo.nl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!newsgate.cistron.nl!news2.euro.net!news.euronet.nl!not-for-mailReferences:
<uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c6c35f1.5840688@newszilla.xs4all.nl> <1013742119.309832@seven.kulnet.kuleuven.ac.be> <3c6e35cf.1533535@newszilla.xs4all.nl> <1013895537.659605@seven.kulnet.kuleuven.ac.be> <3c6fefb8.1216829@newszilla.xs4all.nl> <1013973821.829929@seven.kulnet.kuleuven.ac.be> <%3Ub8.27957$ql6.2438153@zwoll1.home.nl> <1013994968.717889@seven.kulnet.kuleuven.ac.be> <3C706D11.C90F42C2@wanadoo.nl> <1014049007.567811@seven.kulnet.kuleuven.ac.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,65d4c4d6a1e8dc39 X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,65d4c4d6a1e8dc39 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-02-18 09:10:15 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!newsgate.cistron.nl!news2.euro.net!news.euronet.nl!not-for-mail From: Sjoerd Schreuder <sa_schreuder@wanadoo.nl> Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ? Date: Mon, 18 Feb 2002 18:10:04 +0100 Organization: Wanadoo NL Lines: 81 Message-ID: <3C71356C.369677EC@wanadoo.nl> References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c6c35f1.5840688@newszilla.xs4all.nl> <1013742119.309832@seven.kulnet.kuleuven.ac.be> <3c6e35cf.1533535@newszilla.xs4all.nl> <1013895537.659605@seven.kulnet.kuleuven.ac.be> <3c6fefb8.1216829@newszilla.xs4all.nl> <1013973821.829929@seven.kulnet.kuleuven.ac.be> <%3Ub8.27957$ql6.2438153@zwoll1.home.nl> <1013994968.717889@seven.kulnet.kuleuven.ac.be> <3C706D11.C90F42C2@wanadoo.nl> <1014049007.567811@seven.kulnet.kuleuven.ac.be> NNTP-Posting-Host: 212.203.20.29 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: scavenger.euro.net 1014052206 6772 212.203.20.29 (18 Feb 2002 17:10:06 GMT) X-Complaints-To: abuse@wanadoo.nl NNTP-Posting-Date: Mon, 18 Feb 2002 17:10:06 +0000 (UTC) X-Mailer: Mozilla 4.7 [en] (WinNT; I) X-Accept-Language: en