En 2001, j'ai fait des applications pour un J2ME téléphone. Il était de la taille d'une brique. Et très près de la puissance de calcul d'une brique.
Faire de Java apps de fonctionner de façon acceptable sur il doit écrire en tant que procédure que possible de la mode. En outre, la très grande amélioration de la performance est d'attraper l' ArrayIndexOutOfBoundsException
à la sortie pour des boucles sur l'ensemble des éléments dans un vecteur. Penser à cela!
Même sur Android il y a des 'fast' boucle sur tous les éléments dans un tableau et "lent" façons d'écrire la même chose, comme mentionné dans le Google IO vidéos sur dalvik VM internes.
Toutefois, en réponse à votre question, je dirais qu'il est plus rare d'avoir à micro-optimiser ce genre de chose ces jours-ci, et je voudrais en outre s'attendre à ce que JIT VM (même le nouveau Android 2.2 VM, ce qui ajoute JIT) ces optimisations sont discutable.
En 2001, le téléphone s'KVM interprète à 33MHz. Maintenant, il fonctionne dalvik - une plus grande vitesse de VM que KVM - à 500MHz à 1500MHz, avec un beaucoup plus rapide d'architecture ARM (meilleur processeur, même si la vitesse d'horloge de gains) avec L1 e.t.c. et JIT arrive.
Nous ne sommes pas encore dans les domaines où je serais à l'aise de faire directement la manipulation de pixels en Java sur téléphone ou sur le bureau avec un core i7 - il y a donc tout à fait normal de tous les jours code Java n'est pas assez rapide pour. Voici un blog intéressant qui prétend qu'un expert a dit que Java est de 80% de C++ vitesse pour certains gros CPU tâche; je suis sceptique, j'écris de manipulation de l'image de code et je vois un ordre de grandeur entre Java et natif pour des boucles plus de pixels. Peut-être que je suis en manque quelques truc...? :D