SafeTSA
SafeTSA ( Safe Typed виртуальной машины Java (JVM) . Single Assignment (SSA) , ) — это форме одиночного присваивания способное представлять всю типобезопасность языка программирования Java и стандартного байт-кода статическое промежуточное представление в
По состоянию на 2005 год многие оптимизирующие компиляторы (включая JVM-компиляторы) используют представления SSA внутри себя. Типичный JVM-компилятор JVM преобразует байт-код стек-машины JVM во внутреннее статическое представление с одним присваиванием, выполняет оптимизацию, преобразует форму SSA в низкоуровневую форму, аналогичную машинному коду центрального процессора. и выполняет некоторые оптимизации для конкретной платформы, прежде чем наконец создать собственный код, который будет выполняться. SafeTSA — это внешнее представление, аналогичное этим внутренним представлениям SSA, однако SafeTSA по-прежнему обеспечивает полную безопасность типов (включая проверку безопасности во время загрузки класса) стандартного байт-кода JVM. Теоретически это сохраняет преимущества JVM, одновременно уменьшая объем работы, которую JVM должна выполнить для эффективного выполнения программ.
Создатели SafeTSA модифицировали IBM JikesRVM (в то время называвшуюся Jalapeño JVM), чтобы он мог использовать стандартный байт-код JVM, а также байт-код SafeTSA. Затем они запустили стандартный набор тестов Java и опубликовали документ, показывающий, что входные данные SafeTSA обеспечивают более быстрый запуск собственного кода из JIT-компилятора. Кроме того, исследователи также показали, что SafeTSA требуется меньше времени для компиляции в собственный код.
С другой стороны, преимущества байт-кода стековой машины (например, стандартного байт-кода JVM) включают легко реализуемый интерпретатор.
Большинство коммерческих JVM в конце 2005 года использовали смесь интерпретации байт-кода и оптимизированной компиляции по принципу «точно в срок», тогда как JikesRVM, использованный в исследовании SafeTSA, использует только смесь двух различных уровней оптимизации для компиляции «точно в срок». Исследовательская платформа никогда не использовала интерпретацию для запуска байт-кода SafeTSA, поэтому менее ясно, как байт-код SafeTSA будет работать в модифицированной версии коммерческой JVM.
По состоянию на конец 2005 г. [update]Похоже, что SafeTSA использовалась только в научных кругах.
Внешние ссылки
[ редактировать ]- Типобезопасное представление мобильного кода, направленное на поддержку динамической оптимизации на целевом сайте (2000) У. Амме, Н. Далтон, М. Франц, Дж. фон Ронн
- SafeTSA: безопасное и ссылочно безопасное представление мобильного кода на основе статической формы одиночного присвоения (2001) В. Амме, Н. Далтон, Дж. фон Ронн, М. Франц
- Использование представления SafeTSA для повышения производительности существующей виртуальной машины Java (2002) В. Амме, Дж. фон Ронне, М. Франц