27 votes

Le modèle de mémoire de Dalvik est-il le même que celui de Java?

Le modèle de mémoire de Dalvik est-il le même que celui de Java ? Je suis particulièrement intéressé à savoir si les lectures et les écritures de référence et les variables primitives non long / non double sont atomiques, mais je voudrais également savoir s'il existe des différences entre les modèles de mémoire de deux plates-formes.

53voto

fadden Points 17450

Comme de 4.0 (Ice Cream Sandwich), Dalvik du comportement doit correspondre avec la JSR-133 (la Java du Modèle de Mémoire).

Comme d'3.0 (Honeycomb), la plupart des morceaux sont en place, mais quelques petites choses ont été négligés qu'il serait difficile de rencontrer dans la pratique (par exemple, dans certains cas limites de finalisation).

Que de 2.3 (Gingerbread), Dalvik a été généralement correcte sur uniprocessors, mais certaines fonctions clés nécessaires pour le bon comportement sur SMP matériel (p. ex. appropriée final de manutention) est manquant.

Pré-pain d'épices, il n'y avait pas de barrières de mémoire, et des trucs de base comme volatile long a été brisé.

12voto

Tom Anderson Points 22456

Il y a un document dans le Dalvik source qui dit:

Du point de vue d'un morceau de code écrit dans le langage de programmation Java ou ciblée, de la même manière .les fichiers de classe, le Dalvik VM vise à se comporter d'une manière qui est pleinement compatible avec le langage de définition. C'est le code qui s'exécute dans Dalvik va se comportent de la même que dans n'importe quelle autre machine virtuelle.

Qui devrait signifier que le comportement est le même que dans le bon Java. Si elle ne l'est réellement ou pas, je n'ai aucune idée.

0voto

Jonathan B Points 867

La spécification indique que toutes les opérations sur des nombres de 32 bits (les nombres non doubles et non longs) sont atomiques. Il n'y a aucune garantie que les opérations sur les nombres 64 bits sont également atomiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X