aplenos,nikt poza zatwardziałymi javowcami nie będzie tu twierdził,że java jest (tak generalnie,w każdym przypadku) szybsza od C++.
Ale,nie w tym tkwi jej moc,tylko w pełnej przenośności i niezależności od architektury
- 1
- 2

- Rejestracja:około 19 lat
- Ostatnio:około 11 godzin
- Lokalizacja:Warszawa
- Postów:1454

- Rejestracja:prawie 20 lat
- Ostatnio:około 16 godzin
@up:
Stara wersja Javy. Weź pod uwagę to, że gdy pierwsze JVMy powstawały to popularne kompilatory C już były w miarę dojrzałe.
Nowszy benchmark: http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php
Różnica jest generalnie znacznie mniejsza.
Owszem Java wykonuje się średnio kilkadziesiąt procent dłużej, ale czy to takie strasznie ważne? W C/C++ programuje się znacznie wolniej i trudniej, łatwiej też popełnić błędy. A czas programistów jest ograniczony. Być może np mając ten sam czas na napisanie programu, w Javie da się w średnim przypadku napisać program o mniejszej złożoności obliczeniowej. I wtedy ta niewielka różnica w stałej (w złożoności obliczeniowej) nie robi już na nikim wrażenia.
Poza tym weź poprawkę na to, że popularne JVMy kompilują kod w locie (do kodu natywnego) za każdym odpaleniem VMki. Do czasu wykonania musisz w takim razie dorzucić czas kompilacji, aby porównanie było całkowicie fair.





@alpenos23
Benchamrk:
http://shootout.alioth.debian.org/u64/performance.php?test=chameneosredux
Total execution time for C++: 6.57 seconds
Total execution time for Java Server VM: 3.28 seconds
- Rejestracja:ponad 13 lat
- Ostatnio:około 8 lat
- Postów:1176
Mały przykład jak wygląda development w C++. Kolega miał do rozwiązania problem, który nie da się rozwiązać standardowymi metodami. Tak więc wymyślił, że zrobi to sobie algorytmem genetycznym. Zaklepał to w tydzień oczywiście w C++ bo to jest C++ hardcore. Algorytm jest dosyć skomplikowany i działa w chu* wolno (jeden dzień obliczeń) pomimo tego że go zoptymalizował i zrównoleglił.
Ja rozwiązywałem ten sam problem w tym samym czasie. Przetestowałem w tydzień kilka algorytmów w Matlabie, wybrałem najlepszy. Algorytm daje lepsze wyniki i w wykonuje się w 20 minut (w Matlabie) na znacznie większych danych. Teraz to mogę sobie spokojnie zaklepać w C++, żeby był jeszcze szybszy (i przynajmniej będę wiedział czy to dobrze zrobiłem bo mam do porównania wersję w Matlabie). Pisząc od początku w C++ w życiu bym tego nie osiągnął. Po prostu C++ przerzuca uwagę programisty na niskopoziomowe optymalizacje (bo to w C++ łatwo zrobić), a nie na problem który faktycznie rozwiązujesz.
A i programista o którym wspomniałem bynajmniej nie jest słabym programistą - w zasadzie uważam go za lepszego od siebie.


- 1
- 2