modify the profile function

像这种通用的代码，可以使用模板。