Если возможно, было бы лучше использовать некоторую форму внедрения зависимостей, чтобы вы могли подключить один модуль и переключить его с другим. Перед этим вам нужно будет создать уникальный интерфейс для таких библиотек (то есть обертки), что усложнит работу, но в целом улучшит дизайн. Положительным моментом является то, что если вы хотите провести сравнительный анализ более ранних версий, интерфейс должен быть не полным, а просто раскрыть то, что, по вашему мнению, будет наиболее полезным при работе. под вопросом.
Способности очень сильно зависят от используемого языка.
Мне не нравятся искусственные тесты. Они большую часть времени вводят в заблуждение IMO, люди склонны упускать из виду, что одна библиотечная функция выполняет более или менее другую библиотечную функцию, хотя обе они выглядят одинаково. Я редко сталкиваюсь с эталонами, у которых такого свойства не было.
С другой стороны, редко встречается такая вещь, как полностью лучшая библиотека. Многие библиотеки демонстрируют хорошую производительность в некоторых сценариях, когда другие похожие библиотеки могут не работать, и наоборот.
Итак, если производительность - это самое важное для вашего приложения, лучше всего сделать IMO - создать интерфейс для операций, которые вы хотите импортировать, затем подключить / отключить пару библиотек и увидеть различия в реальных тестах, тесты вашего приложения в действии, а не искусственная математика Mumbo Jumbo ...