When a package is being loaded, the runtime will enumerate all of the connection managers, tasks, and data flow components on the system. It does this by looking in certain directories (under <sql>100dts), and also by looking in COM registry for classes that implement certain interfaces. Because this iteration can take a while, we cache this information with the SSIS service.
This might explain the performance difference you’re seeing on the first run of the package.
Author : Enamul(MSFT), SQL Developer Technical Lead