Aller au contenu

Architecture Android


Infernus

Recommended Posts

Je ne sais pas ce que tu en penses, ou ce que tu sais. Mais je pense qu'une appli en natif est plus efficace qu'une appli en java, même sans être optimisé, non ?

Non ca dépend de la qualité du développeur !

Moi je peux te faire du C++ très crade avec pleeeeins de fuites mémoire :)

Lien vers le commentaire
Partager sur d’autres sites

Jorodan ça va tranquille ? Mon post n'était nullement fanboyesque. Ou est ce dit que on compare juste 2 versions d'Android ? De plus en quoi comparer les performances "a vue" avec IOS c'est être fanboy ?

Arrete le jugement hâtif mon ami. Tu verras ça relaxe. ;)

Lien vers le commentaire
Partager sur d’autres sites

Je ne sais pas ce que tu en penses, ou ce que tu sais. Mais je pense qu'une appli en natif est plus efficace qu'une appli en java, même sans être optimisé, non ?

Pour moi une application native d'a d'intérêt que si elle est un minimum optimisée pour la plateforme sur laquelle est tourne.

Parce que si c'est utiliser du C++ juste pour le "plaisir" d'utiliser du C++ ce n'est guère productif.

Après on peut arriver au même soucis qu'on voit entre les PC ayant une puissance brute impressionnante et les consoles de salon. Ces derniers ont souvent un hardware limité et la dernière génération utilise les même API que nos PC (OpenGL ou DirectX), pourtant la différence en terme d'optimisation est flagrante.

Le fait qu'il faille gérer X modèles de cartes vidéos différents sur les PC rend le codage en C++ bien plus compliqué quand on cherche les performances.

D'un autre coté aujourd'hui sur Windows (je ne parle pas des autres que je connais moins) tu peux sortir des applications très performantes en code managé (.NET, Silverlight) s'appuyant sur les capacités du matériel mais pour le développeurs ça n'a rien à voir en terme de temps passé.

Un truc tout co#n: Depuis Vista (et son interface Aero) il est possible de faire une application utilisant un cube 3D manipulable où chaque face montrerait une vidéo en cours de lecture. Pour faire ça grace au WPF il suffit de quelques lignes de codes et ça marche très bien (je m’étais amusé à le faire sous VisualStudio alors que je n'ai aucune compétence particulière pour ça). Essai de faire la même chose en C++ en tapant directement dans les routines DirectX ou OpenGL, tu verras que non seulement ton cube ne sera pas forcément plus fluide à l'usage, mais surtout que ça te prendra 10fois plus de temps pour le même résultat.

Et au final ton cube 3D ne fonctionnera que sur le windows que tu exploite, alors que le cube en WPF peut être transposé en Silverlight très facilement (et donc pourquoi pas finir sur un WP7)

Lien vers le commentaire
Partager sur d’autres sites

D'accord, donc selon toi, le langage influe peu sur les performances de l'app.

Mais de ce que j'ai en tête, le principe d'optimiser son programme pour un certains type de processeur consiste a utiliser toutes les instructions basiques que le processeur propose.

Mais sachant qu'ici TOUT les processeurs sont du ARM, le problème ne se pose pas ( quoiqu'en y pensant il y a les différentes version des Cortex )

Evidemment utiliser du C++ pour utiliser du C++ serait débile, mais par exemple ( si quelqu'un a des données ca m'interesse ).

Pour effectuer une même opération, est ce plus rapide en C++ qu'en Java ? je le pense fortement.

Car sinon, pourquoi est ce que certains dev' s'embête à coder en C++ ?

Je demande juste une réponse simple, C++ plus rapide ou non. Pas de réponse à propos de la simplicitée, je parle simplement à la base, pour ma culture.

Je dois avouer être totalement étrangé aux questions d'optimisations propres à une architecture, si quelqu'un pouvait m'y introduire je lui serais reconnaissant !

Lien vers le commentaire
Partager sur d’autres sites

Ben si on se penche un peu sur la question ce n'est pas blanc/noir, jour/nuit ...

Rien que l'usage d'un compilateur JIT (Just-In-Time) change drastiquement la donne de l'usage d'un byte-code Java.

http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B

http://en.wikipedia.org/wiki/Just-in-time_compilation

Il y a quelques années j'aurai répondu sans hesiter qu'un code C++ est forcément plus rapide qu'un code Java. Mais les choses changent et je n'en serais plus trop certain aujourd'hui. Les compilateur ont bien evolué

Si tu as du temps pour la lecture:

http://www.developpez.net/forums/d1886/general-developpement/debats-developpement-best-of/debat-cpp-vs-java/

;)

Lien vers le commentaire
Partager sur d’autres sites

Je ne retrouve plus les tests, mais depuis Java 5 et surtout 6, la vitesse de la JVM est équivalente à du code C++.

Reste des secteur spécifique comme le temps réelle ou la JVM est à la traine, ou la 3D.

Pour la 3D cela viens surtout des moteurs dispo qui sont quand même rare en Java. La plupart du temps on trouve principalement des surcouche Java à un moteur C existant, qui dit surcouche dit évidement performance moindre( même si c'est parfois imperceptible)

Par contre ça n'a pas vraiment de lien avec l'environnement Android car on tourne sur une JVM Dalvik donc les benchmark Java ne sont pas applicables ici.

Le code Java n'est pas compilé de la même manière et l'environnement d'exécution n'est pas le même qu'avec le Java "Standard" difficile de faire un parallèle

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...