Pandas-Profiling is a very heavy package and the time taken for each execution depends upon the size of the dataset.
It is not advisable to use pandas-profiling on large datasets unless you have a very powerful system.
Usually, datasets having more than 50000 rows should be avoided for pandas profiling.
Try specifying minimal=True, for larger datasets:
from pandas_profiling import ProfileReport
profile = ProfileReport(large_df, minimal=True)