dnp писал(а) 24. Января 2008 :: 08:41:соотношение длительностей выполнения этих фаз, реализованных тремя разными способами :
ЧистаяИнтерпретация \ ИсполнениеБайтКода \ ИсполнениеПроцессорногоКода
будет, соответственно, такой (цифры условные) :
100 \ 10 \ 1
Так вот, речь идет о том, что отказавшись (отложив) вариант "1", мы не обязательно попадаем в "100", а можем получить "10".
И особо узкие места потом можно на "1" перевести, и "10" ни кто оптимизировать не мешает.
Время отработки при:
Интерпретация Исходного кода\Интерпретация Байт-кода\Исполнение нативного кода.
Будет, конечно, различаться. Лучшие образцы виртуальных машин могут похвастаться, что их скорость отработки "всего лишь раз в десять" медленнее нативного кода.
Что касается интерпретации исходного кода, то кто об этом методе говорил?
Я свой первый интерпретатор написал далеком 89 году для перла советской электроники УКНЦ. Интерпретировался Z-80. Но даже в то время я встречал интерпретацию исходного кода в только поделках первокурсников или в учебниках. Все остальные старались ввести стадию компиляции в какое-то подобие байт-кода. Даже Вильнюсский Бейсик для УКНЦ сначала компилировал в "шитый код", как они его называли, а затем интерпретировал его.
Современные ВМ (не в интерактивных системах) вряд-ли исполняют исходный код. Есть, конечно, стадия предварительной компиляции.
Поэтому у меня даже мыслей небыло интерпретировать исходный код )
Что касается использования Бизнес-Объектов, написанных на внутреннем интерпретируемом языке, то ничего против не имею, но необходимо понимать, какие классы можно описывать на внутреннем языке, а какие применять только в виде нативного кода. Ошибки приведут к тому, что будет выбрана не оптимальная архитектура. А переделки займут уйму времени, которого и так нет.
Принцип "давайте склеим как есть, авось полетит" не сработает. Потом придется опять ломать и опять клеить. А склеенная вещь это совсем не то что новая.