Eclipse (Galileo): Почему делает “Инструменты Java Инициализации: 59%” берут НАВСЕГДА?

, Что такое DLL?

Динамически подключаемые библиотеки (DLL) s похожи на EXEs, но они не непосредственно исполняемы. Они подобны .so файлам в Linux/Unix. То есть DLLs являются реализацией MS общих библиотек.

DLLs так похожи на EXE, что сам формат файла является тем же. И EXE и DLLs основаны на формате файла Портативного исполняемого файла (PE). DLLs может также содержать библиотеки.NET и COM-компоненты.

, Что содержит DLL?

DLL А содержит функции, классы, переменные, UIs и ресурсы (такие как значки, изображения, файлы...), который использует EXE или другой DLL.

Типы библиотек:

В фактически всех операционных системах, существует 2 типа библиотек. Статические библиотеки и динамические библиотеки. В окнах расширения файла следующие: Статические библиотеки (.lib) и динамические библиотеки (.dll). Основное различие - то, что статические библиотеки связаны с исполняемым файлом во время компиляции; тогда как динамически подключаемые библиотеки не связаны до времени выполнения.

[еще 1119] на статических и динамических библиотеках:

Вы обычно не видите статические библиотеки, хотя на Вашем компьютере, потому что статическая библиотека встраивается непосредственно в модуле (EXE или DLL). Динамическая библиотека является автономным файлом.

DLL А может быть изменен в любое время и только загружается во времени выполнения, когда EXE явно загружает DLL. Статическая библиотека не может быть изменена, как только она компилируется в EXE. DLL может быть обновлен индивидуально, не обновляя сам EXE.

Загрузка DLL:

загрузки программы А DLL при запуске, через Win32 API LoadLibrary, или когда это - зависимость другого DLL. Программа использует GetProcAddress для загрузки функции или LoadResource для загрузки ресурса.

Дополнительные материалы для чтения:

проверьте MSDN или Википедия для дополнительных материалов для чтения. Также источники этого ответа.

14
задан Pascal Cuoq 3 December 2009 в 17:02
поделиться

2 ответа

Более простой подход, чем очень умный Юджин, - это удалять все плагины по одному, вести записи и следить за производительностью после каждого удаления. Это должно помочь определить плагин, выполняющий большую инициализацию. Возможно, вам действительно не нужен этот плагин.

По моему опыту, часто бывает большая задержка, связанная с плагинами системы управления версиями, потому что некоторые чувствуют необходимость проверять состояние проекта по репозиторию при запуске. Могут быть варианты, как это контролировать. Вы также можете посмотреть, какое украшение на этикетке действует; если какое-то украшение зависит от состояния репозитория, это может быть потерей времени прямо здесь.

Имейте в виду, что эта процедура может быть разрушительной! Вероятно, вы включили эти плагины по какой-то причине, и если вы удалите их, Возможно, вы потеряете возможности в уже существующих проектах, и что даже замена плагинов не обязательно восстановит все во всех проектах до прежнего состояния. Как говорят люди, занимающиеся перераспределением дисков: мы предполагаем, что у вас есть резервные копии всего!

0
ответ дан 1 December 2019 в 14:44
поделиться

Вы можете создать несколько дампов потоков процесса Eclipse Java, чтобы увидеть, какие подключаемые модули выполняются. Вот некоторая информация о том, как принимать дампы потоков.

Что происходит, так это то, что Eclipse загружает все конфигурации проекта, а затем для каждого проекта инициализирует все объявленные компоновщики. Загрузка и инициализация построителя - это то, что занимает большую часть времени. Некоторым разработчикам необходимо разрешить и / или перезагрузить зависимости проекта, такие как jar-файлы и другие проекты, а также проверить, не изменились ли ресурсы проекта. Этот процесс также может запускать инициализацию компоновщиков в других проектах, и это может занять больше времени в зависимости от сторонних плагинов, которые вы используете.

6
ответ дан 1 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: