2010-03-19 2 views
1

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

1

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".

+0

Mais pourquoi accélérer la vitesse en utilisant un modèle de machine virtuelle? – Marplesoft

+0

@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. –

Questions connexes