Каковы основные преимущества внедрения виртуальной машины как части приложения? - PullRequest
1 голос
/ 19 марта 2010

В нескольких базах данных, которые я недавно просматривал, реализована виртуальная машина для внутренних операций чтения и записи соответствующих данных. Для примера, посмотрите эту статью о виртуальной машине SQLite, которую они называют 'VDBE' . Мне любопытно, каковы преимущества такой архитектуры. Я бы предположил, что производительность одна, но почему виртуальная машина, как эта, работает быстрее? На самом деле, кажется, что этот дополнительный слой может заставить его работать медленнее. Так может это для безопасности? Или мобильность? Во всяком случае, просто любопытно об этом.

1 Ответ

1 голос
/ 19 марта 2010

Они делают свое дело на уровне «сборки», где вы получаете приемлемую скорость без потери мобильности. Я думаю, что они предоставляют виртуальную машину, чтобы получить сбалансированный обмен. Либо вы выполняете код высокого уровня (код SQL **) как язык высокого уровня, и вы теряете скорость, но вы получаете удобство. Другой способ - создать платформо-специфический (нативный) код, который будет работать намного быстрее по сравнению с интерпретируемым, но это создает большие трудности для широко распространенной библиотеки, которая работает там, где существует ANSI-C.

** Конечно, это не обязательно должен быть SQL-код. Я думаю , что императивное представление гораздо лучше подходит для исполнения. В любом случае, это представление все еще является представлением очень высокого уровня по сравнению с «кодом операции».

...