Hi Mei,
During 2.7 Q/A we found that some Programs were taking a long time to assign a relatively small amount of users on some setups, we traced it back to the Program enrolment emails. The actual enrolments were happening pretty quickly (especially after performance improvements from T-13477) but the emails were hanging the page while they all sent, which was a slow process. So in this latest patch we moved Program enrolment messages out of instant events and on to the cron so they would send in the background, they won't be instantaneous any more but the program messages cron job should be run fairly regularly so there shouldn't be much delay.
If you are on on a version before 2.5.23, 2.6.16, or 2.7.0 I would recommend upgrading to get the T-13477 performance improvements, however your issue does sound more like the emails issue. To check that the enrolment emails are the cause of your delay I would go to the messages tab of the program in question, remove all enrolment messages, and enrol some users. If there is a marked improvement in the time taken then your issue is probably the recently merged T-13966 (2.6.18 and 2.7.0) and I would suggest upgrading to one of the latest releases.
Cheers,
David