Есть у меня несколько проектов на FreePascal, но в основном пишу на Delphi. /Это как дисклеймер

Думаю, что это общая проблема для всех процедур сборки независимо от компилятора и остальных утилит.
В общем суть моей проблемы и ее исследования:
-Есть проект состоящий примерно из 1000 модулей.
-Модули раскиданы по примерно 30 папкам. Плюс стандартные папки исходников что из поставки, то есть еще порядка 30-40 папок.
-Чем дальше, тем больше начинаю замечать, что мой проект собирается все медленнее и медленнее. Под сборкой я имею ввиду не build, а make. То есть обычную сборку в процессе разработки. Сейчас уже make-сборка идет порядка 20сек. Это при том, что обычно изменяется всего 1-5 модулей.
-Процессор в процессе сборки не загружен (порядка 5-6%), винт молотит как ненормальный.
-Запустил filemon и увидел, что порядка 80% запросов к файловой системе - это просто поиск файла модуля и проверка его изменения. Всего таких "холостых" запросов на этот проект - порядка 30000.
-В общем, ощущение такое, что из этих 20сек большая часть времени тратится на поиск файлов по ветвистой иерархии

Есть ли у кого-нибудь еще такие наблюдения?
Может кто посоветует какую-нибудь методику отладки таких проблем? Я так понимаю, просто время сборки при изменении одного-двух файлов наугад - не совсем правильно. Плюс ощущение такое, что системный кэш сильно искажает результаты эксперимента.
Сейчас реализовал создание хард-линков на все файлы проекта в одной папке. "Холостых" запросов стало 6000. Субъективно сборка стала проходить в теже 5-6 раз быстрее.
В общем - к обсуждению.
Спасибо.