Gå til innhold

Hvorfor er Android så avhengig av mange kjerner og høy klokkefrekvens?


Anbefalte innlegg

Hint

Man må skille i mellom multitasking som å bytte frem/tilbake applikasjoner til forgrunn/bakgrunn og som der "pauses" og hva/hvordan bakgrunns prosesser gjør i et program som kjører servics i bakgrunn og hvordan dete tillates i operativ systemet.

Endret av syar2003
Lenke til kommentar
Videoannonse
Annonse

Og et program som er "swappet" ut får ikke lov å gjøre noen ting i bakgrunnen bortsett fra noen få ting apple har lagt opp til (eks en musikk spiller)

Og et program som er "swappet" ut som får lov å gjøre masse (nesten alt mulig) i bakgrunnen.

 

Begge deler omhandler multitasking for å bringe det i forgrunnen for UI aktivitet.

 

Kjørende bkgrunns prosesser av inkluderte og av 3parts programmer er veldig ulikt mellom IOS og android.

 

 

Jeg fortalte i en annen tråd om samme emne at apputviklere i en stor internasjonal com bedriift jeg snakket med klarte kun å levere en spesifikk applikasjon de utviklet på android og ikke IOS der de ikke fikk tilganger til å gjøre det nødvendige i bakgrunn.

Denne applikasjonen var "ment" å kjøre i bakgrunn for analyse av phone/sip calls og man skal "multitaske" den frem i forgrunnen når noe skjer som krever bruker UI aktivitet og input.

Lenke til kommentar

Hehe tok ikke så lang tid før kranglingen startet, enn så lenge den er konstruktiv så.

 

Virker nytteløst, men takk for de som svarte. Har alltid interessert meg, fordi har alltid hørt rundt på forum at android er mye raskere enn ios, fordi de har ville cpuer etc. Og at iOS er gammel teknologi etc.

 

Når det gjelder multitasking etc, så har jeg bare lest/hørt en video fra han linustechtips at iPhone sin er mye bedre når det kommer til å bevare batteritid.

Endret av henrikrox
Lenke til kommentar

Ja, iOS er optimalisert til nettopp å bruke så lite resurser som mulig, samme med Android men muligens leder iOS litt på dette punktet.

Mange ser dette som mangelfullt og enkelt, men de ser ikke hva som foregår bak kulissene.

Det er ingen vits å la et spill fortsette i bakgrunnen, derfor blir det satt i suspended mode.

 

I Android står utviklerne riktignok litt friere, men det er et tveegget sverd siden man da kan være mindre nøye under programmeringen på bekostning av batteritid og ytelse.

 

 

Men for å pense litt inn på temaet igjen. Er det utført noen tester på strømforbruk på de forskjellige OS-ene ved kjøring av en bestemt app eller et spill?

Eller navigering i selve OS-et?

 

Gitarmikrofonene fanget opp at jeg sveipet mellom skjemrene på telefonen min, så det skjer ting i telefonen.

Lenke til kommentar

Mitt store spørsmål til dere, hvorfor er det slik. Fra et rent teoretisk standpunkt virker dette veldig merkelig. Er det da bare android som er dårlig optimalisert (fortsatt) eller er det andre ting?

 

Interessant å lese fra selve testen du har brukt som kilde:

It seems that when the code morphing systems works as expected, Denver can deliver significant amounts of performance. However, when such code morphing falls flat its true performance with a dual core, 2.3 GHz configuration is around that of a four Krait core CPU system at similar clock speeds. Once again, it's important to emphasize that this build is far from complete so performance should improve across the board with launch software.

 

Jeg tipper at f.eks resultatene fra f.eks sunspider testen nok vil kunne ende opp helt anderledes.

 

Anyway, du linket til en interessant video på slutten, der var forskjellen i ytelse på ca 12% på generelle oppgaver. Ikke all verden, spesielt når Nexus 9 tydligvis er fokusert på grafikkytelse, med ca 2x høyere ytelse på det området.

 

Når det kommer til tittelen på spørsmålet i tittelen på tråden din, så er svaret der at du har endel valg når du lager en prosessor. Du har lengde på pipeline, IPC, kompleksitet pr kjerne. Greia er at man stort sett har et bestemt strømbudsjett og at samme hvordan man vrir of vender på det, så blir ytelsen mer eller mindre lik. Å gå for mange enkle kjerner og relativt høy klokkehastighet eller få kjerner og lavere klokkehastighet har lite med godt design å gjøre, men mer med hva man ønsker å være god på.

 

Når det kommer til prosessorer, så er det forsåvidt ingen av ARM-aktørene som er ledende, den tronen har Intel, men det har ikke kommet noen broadwell-baserte tableter 10" tabletter enda. (Broadwell 5Y70 gjør f.eks sunspider testen unna på 111ms vs 284ms for iPad air 2.)

  • Liker 1
Lenke til kommentar

Ja, iOS er optimalisert til nettopp å bruke så lite resurser som mulig, samme med Android men muligens leder iOS litt på dette punktet.

Mange ser dette som mangelfullt og enkelt, men de ser ikke hva som foregår bak kulissene.

Det er ingen vits å la et spill fortsette i bakgrunnen, derfor blir det satt i suspended mode.

 

.

Hvilket betyr at android enheter har et mye videre bruksområde for applikasjoner mot et mere snevert et på IOS.

Dette har utviklere inkl google nytte gjort seg av (kjøre masse samtidig i bakgrunnen).

Posisjonerings tjenester , now , google appsynk, bilder, backup, playstore, m.m.

Mange slår av unødvendige bakgrunns prosesser med en ny telefon for å begrense batteri konsumering.

 

Batteri tiden til en iPhone 6 med 1500mAh oppfattes oftest då som veldig bra målt opp i mot en android enhet med et "mye større" batteri målt i antall i mAh. Da brukeren av alternativ to har tillatt enheten mange flere parallelle oppgaver om det nå er ubevisst eller bevisst.

 

 

Jeg vil ikke si at IOS leder på området "multitasking" . Med hensyn til bakgrunns prosesser og hendelser har en apple styrt forutsigbarhet i seg som kanskje kan sees på av utviklere av spesielle applikasjoner som en strikt kontrollert tvangstrøye.

Bra i enkelte sammenhenger men problematisk i andre.

 

Eksempelet ditt med spill var lite representativt på hva jeg forsøker å formidle.

Det skal i alle sammenhenger pauses om det ikke kjøres i windowed (noe f.eks Note kan gjøre for enkelte apps) og om nødvendig suspendes til nand memory.

Lenke til kommentar

Samsungs exynos 8 core har 4 kjerner spesielt tiltenkt bakgrunns prosesser.

Disse 4 går med uavhengig speed og power throttling og har lavere maks hastighet og strømforbruk enn main .

Tråder kan flyttes sømløst til disse for bakgrunns prosesser og hastigheten slås ned til minimum.

 

Smart design (for android)

Lenke til kommentar

iOS har det meste av de funksjonene du nevner, men det tar ikke rare strømmen, eller resurser.

F.eks stedstjenester går i bakgrunnen og iOS lærer seg vanene dine, kjøper man en app på telefonen, dukker den opp på iPaden hjemme, bilder og notater synces automatisk mellom enheter osv. osv.

 

Så med andre ord er det store likheter.

 

Lenke til kommentar

Nja, hvis man bruker navigasjon, f.eks Navigon fortsetter den i bakgrunnen, selv om man har på musikk, eller gjør andre ting.

Samme med andre apps som har behov for det.

 

Men spill og lignende fortsetter naturlig nok ikke i bakgrunnen, det er jo ikke Windows mobile heller :)

Lenke til kommentar

Når det kommer til den opprinnelige galaxy s som hadde en god del hakking, var ikke dette pga cpu, men filsystemet samsung hadde brukt. dette var noe mange (jeg selv inkludert) fikset med root og annen kernel. Dette var et dårlig valg av samsung. Har ikke testet andre telefoner fra den tiden, så vet jo ikke om andre telefoner var like treg... mener også å huske at de første iphonene ikke hadde noen muligheter for å holde en app gående i bakgrunnen? annet enn kanskje musikk osv. dette var et godt designvalg, da vi ikke hadde maskinvare som var god nokk til å drive alt android utviklerne ville på den tiden. Rett meg hvis jeg tar feil på her ;)

Endret av agnard
Lenke til kommentar

@syar2003

Sikkert ikke, men det spørs om det de etterspurte støttes av noen API-er, hvis ikke kan man jo spørre seg hvorfor det ikke gjør det.

 

Hvorfor har egentilg Samsungs exynos 8 core fire laveffketsprosessorer, kunne de ikke oppnådd det samme med de fire andre?

​Apple ser da ut til å klare det ganske greit med sin.

Endret av PL610
Lenke til kommentar

 

Hvorfor har egentilg Samsungs exynos 8 core fire laveffketsprosessorer, kunne de ikke oppnådd det samme med de fire andre?

​Apple ser da ut til å greie seg fint med sin.

De fire andre er høykapasitets kjerner.

Designet kalles big.little og har to ulike sett 4 kjernes prosessorer tilpasset ulike oppgaver , mediatek lagde det vel først.

Disse lav effekts strøm optimaliserte 4 kan få reallokert oppgaver som skal gå i bakgrunn og tøffe ned på et par hundre mhz om mulig, mens høyeffekts corene kan kjøre videre med uavhengig hastigheter til andre oppgaver . Det blir energi effektivt.

Apple ville med tilsvarende design fått økt batteri tid. Og det hadde vel vært fint siden vi ikke er bortskjemt på det området.

Endret av syar2003
Lenke til kommentar

For å være helt ærlig så tror jeg det stort sett er optimalisering.

 

Apple har bare 1 plattform å optimalisere for, og har derfor en mye enklere oppgave - mens Android utviklere antagelig stoler mer på at CPU-kraften skal fikse det.

 

Hadde den første Galaxy'en - og den var jo supertreg i de første releasene (ble vel ikke bra før Galaxy S2 hadde kommet faktisk) - men ved å legge inn en optimaliser "hack" ROM så var telefonen helt super og fungerte glatt som en barnerumpe.

 

Vet ikke hvordan ståa er på de nye high-end android-telefonene da jeg byttet til en iPhone 4S for ett par år siden, som jeg fortsatt har - ingen tvil om at det er den beste telefonen Apple har laget so far - men jeg har ikke inntrykk av av S5/Note/Z4 hakker særlig slik som det var før.

Lenke til kommentar

@syar2003

Sikkert ikke, men det spørs om det de etterspurte støttes av noen API-er, hvis ikke kan man jo spørre seg hvorfor det ikke gjør det.

 

Hvorfor har egentilg Samsungs exynos 8 core fire laveffketsprosessorer, kunne de ikke oppnådd det samme med de fire andre?

​Apple ser da ut til å klare det ganske greit med sin.

Som nevnt tidligere, det spiller ingen rolle. Prosessoren din er ikke bedre selv om den har færre cores. Det er bare et designvalg. Apple sin måte er ikke "den eneste rette" måten å gjøre ting på, selv om det virker som du tror det.

Lenke til kommentar

En stor del av årsaken til hakking i Android er nok at minnehåndteringsmodellen i Java benytter garbage collection. Uten masse ledig minne (vi snakker da minst 5-6 ganger mer enn det applikasjonen trenger), så er det svært krevende å unngå små pauser i eksekveringen av kode når garbage collection prosessen inntreffer.

Dette forklares særdeles grundig i denne artikkelen:

http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/

Den fokuserer mest på web-applikasjoner og javascript, men det samme problemet har du i Java når det benyttes til GUI operasjoner som ikke tåler selv minimale pauser uten at det merkes.

 

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...