Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 75, views: 32.775 •

De Nederlandse hacker Chainfire heeft een patch vrijgegeven voor de ontwikkeltools van Android die het compileren van apps drastisch versnelt. Sommige apps zouden tot tien keer sneller gecompileerd kunnen worden.

Android logoChainfire ontdekte dat tijdens het compileren van apps de Android Asset Packaging Tool erg veel tijd nodig had om alle verschillende .xml-bestanden die bij een project horen, te verwerken. Aapt bleek intern niet aan caching te doen, terwijl steeds identieke attributen uit de .xml-bestanden opgezocht werden. Door middel van een kleine patch, van grofweg veertig regels code, bouwde hij ondersteuning voor caching in, waardoor de tijd die nodig is om een app te compileren drastisch afnam. Bij een van zijn eigen apps daalde de compilatietijd van 35 naar 2 à 3 seconden.

Op het xda-ontwikkelaarsforum kunnen app-makers de gepatchte aapt-binary downloaden voor zowel Linux als Windows en de eerste reacties onderschrijven de beweringen van Chainfire. De snelheidswinst lijkt wel af te hangen van het aantal .xml-resources dat gebruikt wordt binnen de app; ontwikkelaars melden snelheidswinsten tussen drie en zeven keer.

Chainfire is van plan om de code van de patch op te schonen en deze daarna in te dienen bij Google. Mocht de contributie geaccepteerd worden, dan zal deze zijn weg vinden naar de officiële versie van de ontwikkeltools, zodat alle app-ontwikkelaars er profijt van hebben.

Reacties (75)

Ik weet niet of chainfire ook op tweakers zit, maar op XDA was het voor mij al een held, hiernogmaals held!!! Heeft android op veel toestellen aanzienlijk verbeterd.
(Turbo3D-win6-5, CF-root android etc.)

[Reactie gewijzigd door D0gtag op 27 september 2012 13:53]

En weer een Nederlander die zoiets ontwikkeld :D
Kan niet echt zeggen dat dit rocket science is. Caching inbouwen is vaak vrij eenvoudig en ook eigenlijk heel normaal als je resources aanspreekt die "duur" zijn. Disk IO is nou eenmaal vrij duur in vergelijking tot memory IO.
Dat is natuurlijk ook de grap, dat er in een tool die al jaren in ontwikkeling is, een simpele cache patch van 40 regels een snelheidswinst van 10x kan opleveren.
Oh, je baalt dat jij niet iets ontwikkeld hebt wat je in de spotlights van de internationale dev community en Google plaatst? Het is dan geen rocket science, hij is er wel maar opgekomen! (jij niet trouwens)
Ben het wel eens met Kajel hoor ;) Je kan zeggen dat het iets normaals is maar er was anders nog niemand mee gekomen.
Net als een 'bounce effect' bij scrollen; het ligt erg voor de hand, maar iemand moet het als eerste implementeren.
Voor Chainfire geen patent, maar wel de statu 'held'.

[Reactie gewijzigd door guapper op 27 september 2012 14:15]

Ligt voor de hand? Dat zeg je nu alleen maar omdat je er nu aan gewend bent, er gaat echter heel wat tijd in zitten om zoiets 'simpels' te bedenken. Dingen zoals tabbladen zijn ook vrij simpel maar kom er maar eens op ;)

Achteraf gezien lijken veel dingen simpel ... maar kom er maar eens op.

Even terug komend op de patch ... ik vind het gewoon slecht van Google (of community?) dat ze voor zo'n belangrijk programma de prestaties en bottlenecks getest hebben. Kijk naar een open-source compiler als GCC, daar wordt héél veel gedaan aan optimalisatie niet alleen om sneller te compileren maar ook om programma's sneller te laten draaien.

Fijn dat uiteindelijk een 'hacker' hier dan een patch voor heeft uitgebracht maar aan de andere kant gewoon rete slecht van de ontwikkelaars van de compiler ;)
Misschien van voor jouw tijd, maar tabbladen bestonden al heel lang hoor, ooit een ordner gezien? ;)
Ik denk dat meer dan de helft van de ui elementen gewoon overgekopieerd zijn van pen & papier 'interfaces'.
Zo'n soort bounce effect zat al lang in de Flash devkit, samen met andere 'end of animation effectjes'. Dat apple het overal implementeerd.. tja, moeten zijn weten.
Sorry, maar ik ben het wel gewoon met hiostu eens. Zoals hij zegt zijn dit zaken die heel normaal zijn voor een beetje developer. Op mijn werk denken we bij alle nieuwe code ook na over zaken als caching en optimalisaties om processen sneller en beter te laten werken.

Dan kan je zeggen waarom is er niemand anders opgekomen. Waarom wel? Misschien is die tool wel eens binnen 10 minuten in elkaar gehacked met het plan het later te optimaliseren, was er daarna nooit meer tijd voor en is het een beetje uit het oog verloren. Vervolgens gebruikt iedereen het gewoon omdat het gewoon werkt, en niemand die eens in de source code kijkt. Het is niet zo dat bij open source projecten alle code eens even elke dag bekeken wordt.

Misschien is het uiteindelijk wel een beetje slim bedacht om er naar te gaan kijken, en wellicht is de manier van implementatie baanbrekend (noot: dit is compleet niet uit het artikel op te maken), maar voor de rest snap ik echt totaal niet waarom dit zo nieuwswaardig is dat het een Tweakers frontpage artikel rechtvaardigd.

TIGER79 hieronder: ik heb ook wel eens een performance fix gemaakt voor een website die door miljoenen mensen per dag bezocht wordt. Heb ik ook geen Tweakers.net artikel over gezien. Als we daarmee beginnen raakt Tweakers heel snel wel heel erg vol.

[Reactie gewijzigd door 84969 op 27 september 2012 20:22]

de vraag is of dergelijke dagelijkse werk ook tienduizenden mensen helpt, of hun situatie verbeterd... dit dus wel, een caching functionaliteit inbouwen in je eigen foto-sorteer software heeft weer weinig inpact...
het is maar net of je op het idee komt, of het iberhaupt opmerkt... dat is hetzelfde als het vinden van een "gat in de markt" vaak supersimpele ideeen, soms niet eens origineel, maar jah die brengen dan wel verandering teweeg... jij probeert het te kleineren, maar dat betekend nog niet dat het en een goed idee is en voor ons developers voordelen met zich meebrengt die we meteen "voelen"...
Oh, je baalt dat jij niet iets ontwikkeld hebt wat je in de spotlights van de internationale dev community en Google plaatst? Het is dan geen rocket science, hij is er wel maar opgekomen! (jij niet trouwens)
Ik ben wellicht spuit 11, maar BoomSmurf is Chainfire.
Neemt niet weg dat iemand er na al die tijd op gekomen is en met een simpele code toevoeging het leven weer een stukje aangenamer heeft gemaakt. Iig voor een heleboel android devs.

Niet om je aan te vallen maar er staat nergens dat dit een staaltje rocket science van de bovenste plank is maar een beetje chauvinisme is wel op zn plaats, toch? Gewoon omdat het leuk is.
Nee, een paperclip is ook geen rocket science. Toch heeft de mensheid een paar honderd jaar moeten wachten voordat iemand op dat lumineuze idee gekomen is.

De meest briljante ideeën zijn vaak het simpelst.
Optimalisaties van compileertijd is altijd mooi meegenomen, thanx..
Weet wel niet echt waarom in de titel staat `nederlandse hacker Chainfire`. Zover ik het zie heeft hij toch weinig aan 'hacking' gedaan.

In ieder geval, zeer goede fix, en wel erg dat ze bij Google zichzelf nog nooit de vraag hebben gesteld waarom het compileren zo lang duurt :-).
Dat hangt van je definitie van Hacken af.
En toch vind ik dit meer het oplossen van een bug.
(Waarbij je het er dan weer over kunt hebben of de methode een hack genoemd kan worden).
Een fix kan ook een hack zijn, maar tja... tegenwoordig is de uitdrukking "hacker" helaas nogal negatief.
Misschien met je even kijken bij "gerelateerde content" aan de rechterkant naast het nieuwsbericht.

Chainfire is onze Nederlandse held tijdens donkere Android dagen.
Waarschijnlijk moet het gelezen worden in de zin van "Hij heeft een fix bij elkaar gehackt die de compileertijd verbeterd".

Nu klinkt iets "bij elkaar hacken" voor mij nogal een beetje als "bij elkaar geschraapt en met ducttape vastgeplakt". Ik weet dus niet of je hiermee zijn prestatie eer aan doet :)
Nee, het is weldegelijk hacking. Hacking heeft in de moderne populaire media de betekenis gekregen van iemand die een systeem binnendringt. Maar dat is echt niet de oorpronkelijke, en nu, enige definitie van hacking.
Zoals tweakers.net de term hacker gebruikt is ook conform RFC 1392.

Zie verder wikipedia: http://en.wikipedia.org/wiki/Hacker_%28term%29
Ik snap het ook niet helemaal.. Hoewel zijn software wel aardig wat android phones geroot heeft.

Maar dit geeft wel weer de kracht van open source software aan. Een ontwikkelaar wordt het compileren zat en gaat in de sources kijken of het niet ergens wat winst te behalen valt. Ziet het gebrek aan caching, maakt een fix en publiceert het.

Volgens mij is dat niet mogelijk met iOS of WP dev tools van de fabrikanten zelf...

[Reactie gewijzigd door Standeman op 27 september 2012 13:22]

Jawel hoor, Apple gebruikt voor iOS / OSX de LLVM compiler. Deze heeft ook een open source licentie.

http://llvm.org/
http://en.wikipedia.org/wiki/LLVM
En Clang mag je gerust ook aan dat lijstje toevoegen - http://clang.llvm.org/ Sowieso met LLVM en Clang zullen we waarschijnlijk nog mooie dingen te zien krijgen en dat ongeacht voor welk platform of OS dat je ontwikkeld !

Ik weet trouwens niet wat dat is met Google en hun dev tools. We spreken over een heel andere kwaliteit dan MS of Apple's oplossingen imho. Bij mij beklemt altijd het gevoel dat het met minder zorg en aandacht is ontwikkeld.

Kijk maar eens naar de staat van hun emulator bijvoorbeeld, ding is gewoon niet vooruit te branden.
Dat het 'ding' niet vooruit te branden is ligt misschien aan het feit dat je geen X86 image geselecteerd hebt. De ARM images zijn inderdaad veel te traag om te testen.

Ik sluit gewoon een Android toestel aan en test het live. De iOS emulator werkt wel snel genoeg om in de praktijk te gebruiken (is ook een X86 versie trouwens)
Binnen de open-source gemeenschap heeft de term 'hacker' ongeveer dezelfde betekenis als de term 'tweaker' hier heeft. Helaas is de term door de mainstream media nogal in een negatief daglicht gezet.

Zie bijv. Wikipedia (iets ingekort):
Depending on the context, the term could refer to a person in any one of several distinct (but not completely disjointed) communities and subcultures:
  • People committed to circumvention of computer security.
  • A community of enthusiast computer programmers and systems designers, originated in the 1960s around MIT. This community is notable for launching the free software movement. The World Wide Web and the Internet itself are also hacker artifacts. RFC 1392 amplifies this meaning as "[a] person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular."
  • The hobbyist home computing community, focusing on hardware in the late 1970s and on software (video games, software cracking, the demoscene) in the 1980s/1990s.
In de mainstream media wordt de term eigenlijk alleen nog maar voor de eerste groep gebruikt, terwijl de 2e en 3e groep zichzelf ook als 'hacker' identificeren, en de term eigenlijk zelfs al langer gebruiken.

[Reactie gewijzigd door hostname op 27 september 2012 13:44]

Dat ie hacker is slaat ook niet (perse) op de fix maar op zijn algemene status...

Hij heeft genoeg dingen gehacked, en daar ben ik hem zeer dankbaar voor!
Daarbij is het een hack omdat hij bestaande code heeft aangepast. Wat jij nu noemt, een ´fix´ is een oplossing voor een probleem. En dat is het in dit geval niet.
Hacking in de zin van slimme IT oplossing.

Zoek maar eens in de Play store Chainfire heeft een hele reeks tools gemaakt voor Android. https://play.google.com/store/search?q=chainfire&c=apps

Hij is erg goed bezig!
Ik wist helemaal niet dat die knakker Nederlands was! Hulde! Menig smartphone geroot met zijn software.
Chainfire is een bekende programmeur op XDA, heeft al heel wat mooie dingen op zijn naam staan. Hulde!
Ik snap niet waarom iets dergelijks groot nieuws is op Tweakers. Ik zie dergelijke performance improvements regelmatig in de open source producten waar ik aan werk en die halen gelukkig het nieuws niet ook al wordt de software door vele miljoenen gebruikers wereldwijd gebruikt.

Heel fijn dat dingen zo veel sneller gaan in bepaalde situaties, maar het is geen wereldschokkende bugfix. Als hij nu de resulterende applicaties zoveel sneller gemaakt had zou ik het een ander verhaal vinden. Dan zou de battery life van al die telefoons gigantisch toenemen, terwijl het nu slechts ontwikkelaars die deze tools gebruiken minuten op een dag scheelt.
Je kan het ook vanuit een ander perspectief bekijken. Als je het belangrijk vind dat apps sneller moeten worden, batterij zuiniger (beter gecodeerd oa) dan moet je juist blij zijn dat Chainfire dit voor elkaar heeft gekregen. Developers zijn nu véél minder tijd kwijt aan compilen danzij hem.

Ik weet niet hoe lang het gemiddeld duurt om een app te compilen, maar ik kan me voorstellen dat developers/mensen best wel geïrriteerd raken als ze steeds ~30 sec moeten wachten tijdens het compilen, testen, bewerken, weer ~30 sec wachten op compilen... Het is een heel tijdrovend proces - en dan snap ik wel dat sommige developers minder snel hun apps optimaliseren omdat het ze gewoon te veel tijd kost naast hun studie/werk/privé leven.

Dus ja, dit is best wel dergelijk groot nieuws.
Ik zal je uitleggen waarom dit groot nieuws is op Tweakers: Het gaat hier om een Nederlander die een fix bedenkt die het leven van enorm veel developers wereldwijd veel makkelijker maakt. T.net is een NLse site, dus is het niet meer dan logisch dat ze aandacht besteden aan tech-nieuws dat specifiek gerelateerd is aan Nederland. Dit is ook best iets om trots op te zijn. Deze programmeur komt uit de Nederlandse techcommunity in de breedste zin van het woord. Een community waar wij als T.net gebruikers ook deel van uit maken.

Ik heb zelf best vaak kritiek op T.net omdat ze regelmatig nieuws herkauwen dat in betere vorm al een paar dagen eerder te lezen was op Engadget, TechCrunch, ArsTechnica etc. Ik ben blij dat ze zich met dit soort nieuws een beetje differentiëren.
Ik noem mezelf geen hacker, maar ik heb voor mijn werk aan Apache Subversion meerdere van dergelijke performance improvements toegevoegd en ik ga daarvan hier echt geen changelog bijhouden op Tweakers. Of ik Nederlander ben (en werk voor een Amerikaans bedrijf) doet hierbij niet echt ter zake.

Ik vind dit soort problemen vinden en oplossen gewoon mijn werk. En eigenlijk vind ik het eerder een bug of scaling problem dat zulke optimalisaties niet al eerder gevonden zijn.

Bij Subversion en eigenlijk binnen de hele Apache community hebben we als policy dat we het eindproduct als een team-effort zien en we gaan dus ook niet persoonlijk met de eer van dergelijke fixes pronken. Major optimalisaties, maar ook simpele zaken zoals documentatie updates zijn zeer belangrijk voor het totaalproduct.
Deze persoon pronkt er toch ook niet zelf mee? T.net vindt het - waarschijnlijk vanwege zijn NLse afkomst - belangrijk genoeg om er een artikeltje aan te wijden. Ik snap dat.
Jouw werk aan Subversions is vast ook heel goed en belangrijk, maar Subversion spreekt nou eenmaal veel minder tot de verbeelding - in ieder geval van niet-ontwikkelaars - dan Android. Dus als er werk gedaan is aan Android - in welke vorm dan ook, zelfs als de eindgebruiker daar niet zoveel van terug ziet - dan is dat nieuwswaardiger dan werk aan Subversions.

Overigens kan niemand hier controleren of jouw patch(es) aan Subversion even baanbrekend zijn qua performance winst. Dus moeten we jou op je woord geloven. In het geval van de patch uit dit artikel weten we wat het resultaat is.

Ik vind het een beetje raar dat je T.net afkraakt op dit artikel, terwijl het er een beetje op gaat lijken dat je gewoon baalt dat jouw werk niet dezelfde erkenning krijgt. Kun je lullen als brugman over de "teameffort" en dat niemand bij Apache mag strijken met de eer, kan me toch voorstellen dat wat erkenning op zijn tijd, fijn is. Ook jij bent mens. Overigens zie ik bij Apache projecten ook best wel eens mensen eruit springen vanwege hun contributies. Doug Cutting bij Hadoop bv.
Subversion is ook gewoon open source, zijn patches zullen ook wel openbaar zijn, maar niemand heeft een nieuws submit ingestuurd (misschien had hij dat zelf wel kunnen doen, of een vriend van hem).

Overigens is een compiler voor Android ook niet iets waar niet-ontwikkelaars mee te maken hebben. Daarnaast weet ik vrijwel zeker dat er meer Tweakers (en developers) met Subversion te maken hebben dan met AAPT.
Het zijn van die dingetjes die eigenlijk een keer opgepakt zouden moeten worden, maar niemand even de tijd voor neemt. Terwijl ze wel degelijk impact hebben op de kwaliteit van het leven als programmeur. Compileren is deels natuurlijk gewoon verloren tijd.
Mooi werk, het zijn de kleine dingen die het leven vaak een stuk makkelijker maken.
De beste man heeft ook gewoon een eigen website, wellicht wel zo leuk om daar naar te linken ?

http://www.chainfire.eu/

Op dit item kan niet meer gereageerd worden.



Populair: Samsung Gamecontrollers Smartphones Processors Sony Microsoft Apple Games Consoles Politiek en recht

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013