ПредишенСледващото

Един от основните недостатъци на езика Java традиционно се счита за ниска скорост, в сравнение с приложения в C ++ програми. И за приложения, където преносимост между платформи или сложност дизайн не е от решаващо значение, това е скоростта, често е причината, поради която разработчиците са избрали за C ++.

Java изпълнение пред в

Java срещу изпълнение сравнение C ++

В сравнение подложени на програма на С ++, съставен с помощта на G ++ (GCC) 3.3.1, както и програма в Java, съставен с помощта на Sun Java 1.4.2_01. За да се изпълни Java-програми използват виртуална машина Sun версия 1.4.2_01. Измерванията Велиста на лаптоп с Pentium 4 процесор и 512 MB памет, която работи на Red Hat Linux 9 / Fedora Тест 1 с версията на ядрото 2.4.20-20.9 нататък.

По време на тестването е установено, че ключовият елемент да повлияе върху ефективността на програмите на Java са виртуални настройки на устройството. Както се вижда от графиката, като използвате опцията на настройките "клиент" (той се инсталира по подразбиране), почти всички операции в програмите на Джава работи по-бавно, отколкото програми в C ++, макар и не толкова, колкото човек би се предположи. Но когато "сървър" конфигурация, в която има такива строги ограничения върху размера на паметта, която сте заемали, предимството в повечето тестове е на страната на Java. Нещо повече, редица операции, като например метод разговор и хеширане е направено в програмите на Джава е няколко пъти по-голям от програмите в C ++. Въпреки това, в повечето от тестовете на скоростта на Java и C ++ са сравними, което, разбира се, може да служи като аргумент срещу становището на Java бавна работа.

Резултати и данни

Глупости не виждал толкова бързо програма в Java, както на сървъра и клиента.

2Znatokam. Oracle10g написани на най-малко изключителен само на тях, но в блаженство, с която вече ocheret integriravanna Java машина, която има нещо като Oracle Aplication Server.

Самият аз работя в изследване в продължение на 3 години, а от нея за мен, имам нещо за сравнение, се тества ефективността на Java приложения, дори да започне zayavlyayust като само толкова скоро сто през полкът е :)

развод е за нещастници.
1. статична на C / C ++ и Java Server получи извикване на метода в сметище високоскоростна
2. тест с постоянни граници на масива? Аз вървя упорито с вас robyata! направи изчистване / нов, без постоянен размер масив и мина. Въпреки това, масив обвързва проверка.


пич, ти пъпчив ученици развод, или на Sun работи?

Да, защо вие, момчета, Java-машина
заедно с известната си колектор
боклук написано нищо. най-малко
С, може би дори с един клас, а това е
C ++ (на това, което тя е написана на ASM разбира се)
Как C може да работи по-бързо себе си.

В допълнение, ако използвате kompillyatsiya в движение,
Въпреки, че това kompillyatsii защо никой не взема под внимание,
сравняване на изпълнението на програми, написани на C ++ и zhava.

C ++ дава всички възможности за оптимизация, тъй като там
всичко е просто и ясно: амплитуда индекса, syudy показалеца
ако не се злоупотребява множествено наследяване всичко
бързо и лесно!
В zhave всичко се основава на
изпълнението на конкретна машина (черна кутия)
т.е. по-специално на мозъка
програмист, който го е написал. Може да си мислите,
вие optimiziruesh и на срещата на върха в действителност ен, не!
Машината изпълнява всички си!

Да, и след това извършете пълно настолно приложение
на zhave на всяка среда машина (P 1000 256)
-- добре, наистина се забави. Не тестове не дават
Вие се нуждаете! Особено лигав!

Тогава вземете PDA - AWT инхибира безсрамно, както и за
SWING и да кажа не!

С усмивка прочетох тази статия.
Вярвам, че в тестовете, проведени има някои грешки, например, те измерват изпълнението на програмите, а не изпълнението на същите операции. При първото стартиране на Java трябва да започне виртуална машина, а след това трябва да бъде взето решение дали да се направи компилация на родния код, ако е така, там е компилация, и едва след това започва да се изпълнява алгоритъм.
Така например, в vychslenii числа на Фибоначи, че трябва да го сравни изчислителни алгоритми, а останалата част не трябва да се взема предвид.

Ето моята версия на програмата:

#include
#include
#include
използване на пространството от имена STD;
неподписан дълго ПИБ (неподписан дълго н) ако (п <2) return(1);
друго връщане ПИБ (п - 2) + ПИБ (п - 1);
>
Int основна (междинно argc, знак * argv []) Int п = ((argc> = 2) atoi (argv [1]) 1 ..);
Struct timeval БТ, et;
gettimeofday (БТ, NULL);
неподписан дълго е = ПИБ (п);
gettimeofday (Et, NULL);
Cout < Cout <<"Time: "
<<(float)(et.tv_sec-bt.tv_sec+(et.tv_usec-bt.tv_usec)*1e-6)
< връщане (0);
>

внос java.util.Date;
обществени клас фибо публично статично невалидни основни (String опцията []) Int п = Integer.parseInt (опцията [0]);
Дата BT = нови Дата ();
Int е = ПИБ (п);
Дата et = нови Дата ();
System.out.println (е);
дълго DT = et.getTime () - bt.getTime ();
System.out.println ( "Време" + String.valueOf (DT * 1д-3));
>
публично статично вътр ПИБ (инт н) ако (н <2) return 1;
връщане ПИБ (п - 2) + ПИБ (п - 1);
>
>

Резултат okazalsya съвсем неочаквано:

Duron 750 MHz, 256 MB RAM
OS: Open SUSE Linux 10
JVM 1.5

1. Когато четете преводни материали, е необходимо, за да гледате на източника.
Защото ние превежда. Хм. Преводачи самите го наричат
"Спецификата на превода на новините". В този случай, заглавието не се прехвърля
напълно, което води до буря от емоции. Оригиналният заглавието казва
_only_ производителност един тест - Безпристрастен Benchmark.
2. Както споменахме aveugle нужда да видим как тестовете отидоха сравнения.
В действителност, повикване функция в Java по-бързо от C ++. по същия начин,
като създаване обект
3. За тези, които смятат, че Java "interpr_i_tatorom". Това е като да кажеш,
че ++ компилатор С не съществува, тъй като първият C ++ се транслира в С,
Само тогава кода на C е компилиран (и този път е така).
Нито Java, C # или тълкуване не се използва, използване JIT компилатор (програмата
изготвя в движение от байткод).

Оригинален нищо статия, за да обвинявам, тестове, извършени изключително честни.

Между другото, на тази оценка и да се придвижвате. С изключение на графичния потребителски интерфейс:

Има няколко сериозни проблеми с изпълнението на GUI
- Памет. За всяко приложение Java има собствена виртуална машина,
ИЪ обикновено не rassharivat (частично решен проблема в 5.0).
- Cross-платформа. Трябва да се обърне и да плащат до 1.4 е много
страхотно. С всяка нова версия на скоростта на работа се увеличава.
- Събирачът. Вярно е особено с проблема с памет, когато
употребяван дисково пространство.

С GUI е трудно да се говори за сравняване на производителността. Ако добавите
повече памет, разликата е малка. Но ако паметта е ниско (или
работи много приложения) - разликата е от голямо значение.
Остава да добавим, че увеличаването на производителността (една виртуална
машина за всички Java приложения, rassharivaniya библиотеки намаление
разходи, дължащи се на различни платформи подобрено събиране на боклук)
Една от основните задачи на водопровод на точката на данни.

Java отдавна е стандарт за сървърни приложения, увеличаване на
производителността си до нивото на C ++. Java за работния плот
все още изостава значително от C ++.
Въпреки, че вече е възможно да се толерира (за различни платформи, в частност)
и той се надява да има нещо в бъдеще.

Аз чакам на моята машина работи C ++ Builder JBuilder. (И двете от Borland, един написан на C, на второ място в Java, доколкото аз знам. Ярки примери). и защо е интересно за себе си SiBilder взе 40 MB памет и по-примитивен DzhBilder 120 и дори tupit докато уплашен. )

И все пак на мнение, че е необходимо да се напише Java (Java ако прекъсвач) вместо "Ява", тъй като е на името на острова е запазено и чайове

Свързани статии

Подкрепете проекта - споделете линка, благодаря!