Операционная система UNIX. Руководство программиста

     

Использовать ли разделяемую библиотеку?


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

Если есть как разделяемая, так и неразделяемая библиотеки, Вы можете для сравнения создать две версии Вашей программы, с разделяемой библиотекой и без нее. Напомним, что это возможно, так как для обоих видов библиотек годится один и тот же исходный текст (см. выше раздел Исходный текст программ). Сделайте две версии выполняемого файла и сравните их с точки зрения размера и эффективности. Пример:

$ cat hello.c main () { printf ("hello\n"); } $ cc -o unshared hello.c -lc $ cc -o shared hello.c $ size unshared shared unshared: 10384 + 1292 + 2336 = 14012 shared: 472 + 944 + 2232 = 3648

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

Принимая решение относительно использования разделяемых библиотек, помните о том, что они отсутствуют в версиях ОС UNIX, предшествующих 3.0, поэтому, если Ваши программы должны выполняться на этих версиях, Вам не следует применять разделяемые библиотеки.



Содержание раздела