Question

Je suis en train d'écrire un article sur la plateforme Android. Après certaines recherches , il est clair que Dalvik peut encore être amélioré. Je me demandais quelle serait, à votre avis, la meilleure utilisation du temps d'un développeur avec cet objectif?

La compilation JIT semble être la plus grosse, mais j’ai aussi entendu dire que son utilisation serait limitée sur une machine disposant de peu de ressources. Quelqu'un a-t-il une ressource ou des données pour sauvegarder cette information?

Existe-t-il d'autres options à prendre en compte? En plus de développer un kit de développement natif robuste pour contourner la VM.

Pour les personnes intéressées, une conférence a été enregistrée et mise en ligne sur le Dalvik VM .

Toutes les idées sont les bienvenues, car cette question semble subjective , je vais préciser que la réponse que j'accepterai devra avoir une justification des modifications proposées. Toute donnée à sauvegarder, telle que l’amélioration de la JVM de Sun lorsqu’elle a été introduite, serait un atout considérable.

Était-ce utile?

La solution

  1. Meilleure collecte des ordures: compactage minimum (pour éliminer les problèmes de fragmentation de la mémoire rencontrés de nos jours), idéalement moins gourmand en ressources processeur pour effectuer la collecte elle-même (pour réduire les plaintes liées à la vitesse de lecture de mon jeu)
  2. JIT, comme vous le citez
  3. Assez de documentation pour que, associé à un NDK, une personne suffisamment folle puisse compiler le bytecode de Dalvik en code natif pour une option de compilation AOT
  4. Rendez-le séparable d'Android lui-même, de sorte que d'autres projets puissent l'expérimenter et que les contributions de la communauté arrivent en plus grande quantité et plus rapidement

Je suis sûr que je pourrais proposer d'autres idées si vous en avez besoin.

Autres conseils

  1. JIT. Le fait de ne pas aider est une charge de merde. Vous pourriez être plus sélectif sur le code que vous avez choisi mais avoir 1 / 10ème des performances du code natif va toujours être limité

  2. GC décent. Les éboueurs de génération modernes n'ont pas de gros béguin.

  3. Meilleure analyse du code. Il y a beaucoup de cas où les allocations / libérés n'ont pas besoin d'être faits, les verrous maintenus, etc. Cela vous permet d’écrire du code propre plutôt que de faire des optimisations pour lesquelles la machine est meilleure

En théorie, la plupart des langages de niveau supérieur (Java, Javascript, python, ...) devraient représenter moins de 20% des performances du code natif dans la plupart des cas. Mais il faut que le fournisseur de la plate-forme consacre plus de 100 ans au développeur. Sun Java devient bon. Ils y travaillent également depuis 10 ans.

L’un des principaux problèmes de Dalvik est la performance. C’est terrible, c’est terrible, mais l’une des choses que je voudrais le plus, c’est l’ajout de plus de langues.

La JVM a eu des projets de communauté faisant fonctionner Python et Ruby sur la plate-forme, et même des langages spéciaux tels que Scala, Groovy et Closure développés pour cette plate-forme. Ce serait bien de voir cela (et / ou d’autres) sur la plate-forme Dalvik également. Sun travaille également sur la machine Da Vinci, une extension de typage dynamique de la machine virtuelle Java, qui indique un changement majeur de la "langue unique". philosophie Sun a suivi au cours des 15 dernières années.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top