Средства разработки приложений


Пример


Чтобы убедиться в корректности работы реализации, была взята программа расчета динамики взрыва сверх новой звезды, реализованная на языке Fortran. []. Основная функция main, которая управляет расчетами, была переписана на язык Java. Остальные подпрограммы оставлены на языке Fortran.

Результаты работы исходной программы, реализованной только на языке Fortran, и программы, основная часть которой реализована на языке Java, а подпрограммы выполнены на языке Fortran, одинаковые.

Для сравнения времени работы полученного приложения, реализованного на языке Java с использованием Fortran-подпрограмм, было произведено сравнение с точно таким же приложением, но реализованным целиком на языке Fortran и на языке Java. Приложение можно представить в виде следующей схемы, представленной на рисунке 1.

1.gif

Рисунок 1. Схема приложения.

В приложении, реализованном на языках Java+Fortran, инициализация данных и запись данных в файлы выполняется в Java-окружении, а счет выполняется в Fortran-среде.

Для сравнения времени выполнения были выполнены замеры, как скорости работы всего программного приложения, так и отдельных его частей, в соответствии с рисунком 1. Замеры проводились на персональном компьютере. Размер оперативной памяти 512 MB, частота процессора 1700 MHz. Характеристики кэш-памяти процессора следующие:

CPU L1 Cache: 64K (64 byte/line), CPU L2 Cache: 526K (64 byte/line)

Сравнение времени работы представлено в таблице 3 и на рисунке 2.

Таблица 3. Сравнительная производительность.

полное приложение (ms) инициализация (ms) счет (ms) запись (ms)
Fortran 261559 42826 218450 283
Java + Fortran 266223 43540 221623 1060
Java 337225 69874 265727 1624


2a.gif

(а)

2b.gif

(б)

2c.gif

(в)

2d.gif

(г)

Рисунок 2. Время выполнения.

Как видно из и на , реализация приложения на языках Java+Fortran не значительно проигрывает по времени выполнения приложению, реализованному только на языке Fortran. Это достигается за счет того, что в приложении, реализованном на Java+Fortran, вычисления полностью выполняются в Fortran-среде.

Однако приложение, реализованное на языках Java+Fortran, работает значительно быстрее, нежели приложение, реализованное на языке Java. Как видно на , , , в приложении, реализованном только на языке Java, не только вычисление занимает больше времени, нежели в приложении, реализованном на языках Java+Fortran, но и инициализация и запись данных в файл. Потеря времени происходит за счет того, что большая часть инициируемых данных берется из файла. В приложении, реализованном только на языке Java, данные из файла записываются в массивы языка Java, а в приложении, реализованном на языках Java+Fortran, - в прямые буферы.


Начало  Назад  Вперед