У меня около 50 различных статических библиотек, связанных с моим проектом на С++, и связь занимает в среднем 70 секунд.
Я обнаружил, что на этот раз перемещение с порядком ссылок библиотек изменится. Ожидается, что я думаю, что если компоновщику не нужно искать набор символов по всей таблице символов, которые он создал до этой точки.
Я предполагаю, что могу использовать "nm", чтобы получить график зависимости между статическими библиотеками. Однако это даст мне только один "правильный" порядок ссылок. Каковы были бы факторы, связанные с получением самого быстрого порядка ссылок?
У меня возникает ощущение, что это будет связано с вышеупомянутым графиком зависимостей, получив обход, который попытается свести к минимуму некоторое количество, но я действительно не уверен, что.
Любая помощь будет оценена по достоинству.
Я в основном использую компилятор Intel, а также компилятор gcc время от времени. Оба они, кажется, используют GNU ld-компоновщик, когда я проверяю его сверху. Надеюсь, это поможет...
Поэтому, чтобы немного разъяснить, что я пытаюсь спросить, я уже знаю, как получить 1-проходное упорядочение из набора статических библиотек. Я написал этот script сам, но, как говорит Олаф ниже, есть хорошо известные инструменты для этого.
Мой вопрос в том, что у меня уже есть два порядка 1-проходных ссылок, один из которых работает в ~ 85, а другой - в ~ 70 секунд. Настолько ясно, что еще есть оптимизация, которую мы можем сделать в рамках 1-го порядка.