Как выбрать между статическим и динамическим режимами ИКВМ? - PullRequest
0 голосов
/ 29 октября 2010

Я развернул некоторые библиотеки Java в своем приложении .NET. Должен ли я преобразовывать библиотеки Java в библиотеки DLL с помощью ikvmc или использовать динамические функции для преобразования во время выполнения?

Я ожидаю, что использование ikvmc уменьшит начальную загрузку приложения. У кого-нибудь есть опыт, чтобы это проверить? С другой стороны, мой процесс сборки будет значительно проще, если я пройду по динамическому маршруту.

Теоретически, предварительное преобразование может также обнаружить ошибки преобразования ранее. Однако мое тестовое покрытие должно смягчить эту проблему.

Кроме того, я представляю, что ikvm может кэшировать динамически преобразованные сборки на диске где-нибудь, так что только самая первая загрузка (возможно, часть установки) будет медленнее. В документах ikvm я не видел ничего, что указывало бы на то, что это так.

1 Ответ

0 голосов
/ 01 ноября 2010

Если для вас фактор производительности, то вы должны преобразовать его в DLL.Разница во времени очень большая.Если у вас есть только небольшой JAR-файл (несколько КБ), вы можете сделать это, потому что время компиляции линейно с размером.

Но важно, чтобы вы содержали ссылку на один экземпляр URLClassloader.Если вы создаете повторный новый URLClassloader, то он должен компилироваться во все времена.Также JIT не может работать, потому что вы используете все новые классы.

Если вы хотите узнать, сколько времени это займет, вызовите ikvmc yourJarFile.jar один раз.Это время, в которое ваша программа нуждается в дополнительном времени запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...