Производителност на приложението Java срещу C - обяснява Гари

Автор: John Stephens
Дата На Създаване: 23 Януари 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
Cloud Computing - Computer Science for Business Leaders 2016
Видео: Cloud Computing - Computer Science for Business Leaders 2016

Съдържание


Започвайки с най-лошия резултат, 32-битов Android 5.0, показва, че Java кодът работи с 296% по-бавно от C, или с други думи 4 пъти по-бавно. Отново не забравяйте, че абсолютната скорост тук не е важна, а по-скоро разликата във времето, необходимо за стартиране на кода на Java в сравнение със C код, на същото устройство. 32-битовият Android 4.4 KitKat със своя Dalvik JVM е малко по-бърз с 237%. След като скокът се извърши към Android 6.0 Marshmallow, нещата започват драстично да се подобряват, като 64-битовият Android 6.0 води до най-малката разлика между Java и C.

Вторият тест е тест на прости числа, като се използва проба по деление. Както бе отбелязано по-горе, този код използва 64-битовдълго цели числа и следователно ще благоприятстват 64-битовите процесори.

Както се очаква, най-добрите резултати идват от Android, работещ на 64-битови процесори. За 64-битовия Android 6.0 разликата в скоростта е много малка, само 3%. Докато за 64-битовия Android 5.0 е 38%. Това демонстрира подобренията между ART на Android 5.0 и Оптимизиране компилатор, използван от ART в Android 6.0. Тъй като Android 7.0 N все още е бета на разработка, не съм показал резултатите, но като цяло се представя като Android 6.0 M, ако не и по-добър. По-лошите резултати са за 32-битовите версии на Android, а странно 32-битовите Android 6.0 дават най-лошите резултати на групата.


Третият и последен тест изпълнява тежка математическа функция за милион повторения. Функцията прави аритметиката с цяло число, както и аритметика с плаваща запетая.

И тук за първи път имаме резултат, при който Java всъщност работи по-бързо от C! Има две възможни обяснения за това и двете са свързани с оптимизация и Оptimizingкомпилатор от ARM. Първо, Оptimizing компилаторът може да създаде по-оптимален код за AArch64, с по-добро разпределение на регистрите и т.н., отколкото компилаторът C в Android Studio. По-добрият компилатор винаги означава по-добра производителност. Също така може да има път през кода, който Optimizingкомпилаторът е изчислил може да бъде оптимизиран далеч, тъй като няма влияние върху крайния резултат, но компилаторът C не е забелязал тази оптимизация. Знам, че този вид оптимизация беше един от големите фокуси за Оptimizingкомпилатор в Android 6.0. Тъй като функцията е просто чисто изобретение от моя страна, може да има начин да оптимизирате кода, който пропуска някои раздели, но не съм го забелязал.Другата причина е, че извикването на тази функция, дори един милион пъти, не води до събирането на боклука.


Както при теста на праймес, този тест използва 64-битовдълго цели числа, поради което следващият най-добър резултат идва от 64-битов Android 5.0. След това идва 32-битов Android 6.0, следван от 32-битов Android 5.0 и накрая 32-битов Android 4.4.

Wrap-нагоре

Като цяло C е по-бърз от Java, но разликата между двете е намаляла драстично с пускането на 64-битов Android 6.0 Marshmallow. Разбира се, в реалния свят решението да се използва Java или C не е черно-бяло. Въпреки че C има някои предимства, всички Android UI, всички Android услуги и всички Android API са проектирани да се извикват от Java. C наистина може да се използва само когато искате празно платно OpenGL и искате да рисувате върху него, без да използвате Android API.

Ако обаче приложението ви има сериозно повдигане, тези части могат да бъдат пренесени на C и може да видите подобрение на скоростта, но не толкова, колкото някога сте виждали.

Настройването на канал в YouTube е лесно, бързо и безплатно. Той ви дава достъп до голяма аудитория, като два милиарда души използват услугата месечно. Но има голяма конкуренция, тъй като повече от 50...

Ако не знаете как да споделяте календар на Google, ще дойдете на правилното място. Процесът е толкова прост, че дори баба ви би могла да го направи. Нужно е само няколко кликвания и няколко минути от ...

Популярни На Сайта