[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] Performance: C contra Ada



On Wed, Mar 03, 2004 at 07:03:21AM +0100, Michael Rasmussen wrote:
> On Tue, 02 Mar 2004 17:16:53 +0100, Jakob Oestergaard wrote:
> 
> > 
> > Som udgangspunkt; hvis Java er hurtigere end C++ så har du gjort noget
> > forkert    (/me dukker hovedet  ;)
> > 
> Det var også min første tanke:-) Senere er jeg kommet lidt i tvivl, og
> har overvejet, om det er compilerrelateret (g++). Jeg benytter typen long
> long i c++, da typen long i Java er identisk med long long i C++, så
> måske er det her, der kan findes en forskel?
> 
> > Jeg vil også meget gerne se dine kode eksempler.
> > 
> > Eventuelt kunne jeg udvide mit "language wars" dokument lidt, til at
> > indeholde en Java vs. C++ vs. C del også:
> >    http://unthought.net/c++/c_vs_c++.html
> > 
> > Hvis altså du vil af med koden  :)
> > 
> Ingen problemer her - det er jo udgivet under GPL:-)
> C++: http://tomcat.edu.brock.dk/dmu/csis3013/examples/fibonaci-c++.tar.gz
> Java:
> http://tomcat.edu.brock.dk/dmu/csis3013/examples/fibonaci-java.tar.gz
Ok. Jeg har siddet og kigget lidt på det, og Java koden kører markant
hurtigere end C++ koden i de versioner der er på nettet. For at fjerne
uheldige interaktioner fra alle tråd tingene osv, har jeg klippet det
hele ned, så der kun er de funktionelle dele tilbage.

Koden er tilgængelig fra http://hjernemadsen.org/java-vs-cc

Alle de tests jeg har kørt har været med en parameterværdi på 40.

I mine versioner:

Java:			28 sec.
C++:			42 sec.

Så det passer jo også meget godt overens med de originale versioner.

Ved at give g++ -march=i686 med som parameter (så den compiler koden til
en PentiumII som jeg arbejder på) falder køretiden:

C++(i686):		38 sec.

Hvis man sætter et const ind i doRec's parameter falder køretiden igen:

C++(const+i686):	30 sec.

Men det er så også det tætteste jeg lige kan komme. Hvorfor java så
stadigvæk er hurtigere, kan jeg desværre ikke forklare... Ud over at det
her naturligvis er en ualmindelig simpel funktion, og at det falder
heldigt ud til fordel for Java. 

Til orientering skal det siges at det hele er kørt på en Gentoo maskine,
så Java vm'en var compilet til CPU'en. Den var forøvrigt en 466MHz
Celeron.

Det kunne være meget skægt at se en java-implementation af den opgave
som Jakob har stillet på sin hjemmeside (find antallet af unikke ord i
en fil), bare for at sammenligne. Det burde trods alt stresse nogle helt
andre dele af systemet (og der regner jeg med at C++ trods alt vinder).

-- 
/-----------------------------------------------------\
| Klaus S. Madsen      | "Failure is not an option... |
| ICQ: 45400164        |  It comes bundled with your  |
| www.hjernemadsen.org |  Microsoft products!"        |
\-----------------------------------------------------/


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:43 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *