Pagganap ng Java vs C app - paliwanag ni Gary

May -Akda: John Stephens
Petsa Ng Paglikha: 23 Enero 2021
I -Update Ang Petsa: 1 Hulyo 2024
Anonim
iOS App Development with Swift by Dan Armendariz
Video.: iOS App Development with Swift by Dan Armendariz

Nilalaman


Simula sa pinakamasamang iskor, 32-bit na Android 5.0, ay nagpapakita na ang Java code ay tumakbo ng 296% na mas mabagal kaysa sa C, o sa ibang salita 4 na beses na mabagal. Muli, tandaan na ang ganap na bilis ay hindi mahalaga dito, ngunit sa halip ang pagkakaiba sa oras na kinuha upang patakbuhin ang code ng Java kumpara sa C code, sa parehong aparato. Ang 32-bit na Android 4.4 KitKat kasama ang Dalvik JVM ay medyo mas mabilis sa 237%. Kapag ang jump ay ginawa sa Android 6.0 Marshmallow mga bagay ay nagsisimula upang mapabuti ang kapansin-pansing, na may 64-bit na Android 6.0 na nagbigay ng pinakamaliit na pagkakaiba sa pagitan ng Java at C.

Ang pangalawang pagsubok ay ang pangunahing bilang ng pagsubok, gamit ang pagsubok sa pamamagitan ng paghahati. Tulad ng nabanggit sa itaas ng code na ito ay gumagamit ng 64-bitmahaba integer at sa gayon ay papabor sa 64-bit processors.


Tulad ng inaasahan na ang pinakamahusay na mga resulta ay nagmumula sa Android na tumatakbo sa 64-bit processors. Para sa 64-bit na Android 6.0 ang pagkakaiba sa bilis ay napakaliit, 3% lamang. Habang para sa 64-bit na Android 5.0 ito ay 38%. Ipinapakita nito ang mga pagpapabuti sa pagitan ng ART sa Android 5.0 at Pag-optimize compiler na ginamit ng ART sa Android 6.0. Dahil ang Android 7.0 N ay isang beta ng pag-unlad ay hindi ko pa ipinakita ang mga resulta, gayunpaman sa pangkalahatan ito ay gumaganap pati na rin ang Android 6.0 M, kung hindi mas mahusay. Ang mas masahol na resulta ay para sa 32-bit na mga bersyon ng Android at kakaibang 32-bit na Android 6.0 ay nagbubunga ng pinakamasama mga resulta ng pangkat.

Ang pangatlo at pangwakas na pagsubok ay nagsasagawa ng isang mabibigat na pag-andar ng matematika para sa isang milyong mga iterasyon. Ang pag-andar ay ang integer aritmetika pati na rin ang lumulutang na point aritmetika.


At narito sa kauna-unahang pagkakataon na mayroon kaming isang resulta kung saan ang Java ay talagang tumatakbo nang mas mabilis kaysa sa C! Mayroong dalawang posibleng mga paliwanag para dito at pareho ang gagawin sa pag-optimize at ang Optimizingtagagawa mula sa ARM. Una, ang Optimizing tagagawa ay maaaring gumawa ng mas optimal na code para sa AArch64, na may mas mahusay na paglalaan ng rehistro atbp, kaysa sa compiler C sa Android Studio. Ang isang mas mahusay na tagatala ay palaging nangangahulugang mas mahusay na pagganap. Gayundin maaaring magkaroon ng isang landas sa pamamagitan ng code na kung saan ang Optimizingkinakalkula ang compiler ay maaaring mai-optimize ang layo dahil wala itong impluwensya sa panghuling resulta, ngunit ang C compiler ay hindi nakita ang optimization na ito. Alam ko na ang ganitong uri ng pag-optimize ay isa sa malaking pokus para sa Optimizingtagatala sa Android 6.0. Dahil ang pag-andar ay puro imbensyon lamang sa aking bahagi, maaaring magkaroon ng paraan upang ma-optimize ang code na tinanggal ang ilang mga seksyon, ngunit hindi ko ito nakita.Ang iba pang dahilan ay ang pagtawag sa pagpapaandar na ito, kahit isang milyong beses, ay hindi nagiging sanhi ng pagtakbo ng basurero.

Tulad ng pagsubok sa primes, ang pagsubok na ito ay gumagamit ng 64-bitmahaba ang mga integer, na ang dahilan kung bakit ang susunod na pinakamahusay na marka ay nagmula sa 64-bit na Android 5.0. Pagkatapos ay darating ang 32-bit na Android 6.0, na sinusundan ng 32-bit na Android 5.0, at sa wakas ay 32-bit na Android 4.4.

Balutin

Ang pangkalahatang C ay mas mabilis kaysa sa Java, gayunpaman ang agwat sa pagitan ng dalawa ay mabagal na nabawasan sa paglabas ng 64-bit na Android 6.0 Marshmallow. Siyempre sa totoong mundo, ang pagpapasyang gumamit ng Java o C ay hindi itim at puti. Habang ang C ay may ilang mga pakinabang, ang lahat ng mga Android UI, ang lahat ng mga serbisyo sa Android, at lahat ng mga Android APIs ay idinisenyo upang tawagan mula sa Java. Maaari lang talaga magamit ang C kung nais mo ng isang blangko na canvas na OpenGL at nais mong iguhit ang kanvas nang hindi gumagamit ng anumang mga API ng Android.

Gayunpaman kung ang iyong app ay may ilang mabigat na pag-aangat na gawin, kung gayon ang mga bahaging iyon ay maaaring mai-port sa C at maaari kang makakita ng isang pagpapabuti ng bilis, gayunpaman hindi tulad ng dati mong nakita.

a pagtingin a bagong Chromecat, ang dienyo ng player ay hindi nagbago nang marami kumpara a papalaba na modelo. Ang katawan ng aparato ay pa rin iang hugi ng puck na may kaamang iang naka-attach na ...

Ikaw ba ay iang magulang o may-ari ng alagang hayop? Kung gayon, malamang na nabigo ka a iyong kawalan ng kakayahan na magbahagi ng apat na nilalaman a online. Huwag kang mag-alala, narito ang tulong ...

Mga Artikulo Para Sa Iyo.