Plusieurs bases de données que j'ai examinées récemment implémentent une machine virtuelle en interne pour effectuer les lectures et les écritures de données respectives. Pour un exemple, consultez this article on SQLite's virtual machine they call the 'VDBE'. Je suis curieux de savoir quels sont les avantages d'une telle architecture. Je suppose que la performance est un, mais pourquoi une machine virtuelle comme celle-ci fonctionnerait plus vite? En fait, il semble que cette couche supplémentaire pourrait ralentir son fonctionnement. Alors c'est peut-être pour la sécurité? Ou la portabilité? En tout cas, juste curieux à ce sujet.Quels sont les principaux avantages de l'implémentation d'une machine virtuelle dans le cadre d'une application?
Répondre
Ils font leur travail au niveau de l'assemblage, où vous gagnez une vitesse acceptable sans perdre la portabilité. Je pense qu'ils fournissent une machine virtuelle afin qu'ils obtiennent un compromis équilibré. Soit vous exécutez le code de haut niveau (code SQL **) comme un langage de haut niveau et vous perdez de la vitesse, mais vous gagnez en commodité. L'autre façon est de produire du code spécifique à la plate-forme (Native) qui va fonctionner beaucoup plus vite par rapport à l'interprété mais c'est beaucoup de tracas pour une bibliothèque étendue qui fonctionne là où ANSI-C existe.
** Il ne doit pas nécessairement s'agir d'un code SQL. Je pense qu'une représentation impérative est beaucoup mieux adapté à l'exécution. Quoi qu'il en soit, cette représentation est encore une représentation de très haut niveau par rapport à "opcode".
- 1. Quels sont les principaux concurrents de Servoy?
- 2. Quels sont les trois principaux concepts principaux de WPF?
- 3. Programmation sous machine virtuelle - avantages et inconvénients
- 4. Quels sont les principaux/principaux dépôts Maven à utiliser?
- 5. Quels sont les principaux points d'hibernation?
- 6. Quels sont les avantages de Struts
- 7. Quels sont les principaux avantages du passage au DLR pour mon langage de script?
- 8. Quels sont les avantages d'utiliser MSBuild?
- 9. Quels sont les avantages de VS2010 SP1?
- 10. Quels sont les principaux avantages d'un examen de projet en face-à-face?
- 11. Quels sont les avantages/inconvénients de py2exe
- 12. quels sont les avantages de MVC3 sur MVC2
- 13. Quels sont les avantages à utiliser Qt?
- 14. Quels sont les avantages d'utiliser automapper?
- 15. Quels sont les avantages pour xhr (xml_http_request)?
- 16. Quels sont les avantages des différentes endiannesses?
- 17. Quels sont les véritables avantages d'ExpandoObject?
- 18. Quels sont les principaux inconvénients de l'utilisation de l'API Membership?
- 19. Quels sont les avantages de l'utilisation de ForeignKey dans Django?
- 20. Quels sont les avantages de l'utilisation de plpgsql dans postgresql
- 21. Quels sont les avantages de l'application de routes reposantes dans une application MVC?
- 22. Quels sont les dangers de rendre une méthode virtuelle?
- 23. Quels sont les avantages de faire WPF dans Expression Blend?
- 24. Quels sont les avantages et les inconvénients de NHibernate?
- 25. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 26. Quels sont les avantages du survol sur mouseover dans JQuery?
- 27. Quels sont les avantages de la combinaison WPF + XNA?
- 28. Quels sont les avantages d'utiliser Prolog dans d'autres langues?
- 29. Hébergement CLR contre l'utilisation de ClrCreateManagedInstance - quels sont les avantages?
- 30. Quels sont les avantages de l'utilisation de OnAsyncPostBackError sur Page_Error
Mais pourquoi accélérer la vitesse en utilisant un modèle de machine virtuelle? – Marplesoft
@Marplesoft: principalement parce que vous économisez le temps nécessaire pour analyser la langue source et sa sémantique (SQL dans le cas de SQLite). Le compilateur transcrivant le langage source au bytecode VM fait beaucoup, y compris certaines optimisations, et il ne vous reste plus qu'à exécuter le bytecode résultant aussi vite que possible. –