still not finding a better way to profile compile time but i do find the main reason that cause extra 0.6 second. it was a struct contain a huge array inside, its size was 0.5 mb. by removing all those array my compile time drop to 0.2 second(WOAH). i discovery this by having a a size 25mb struct by accident ,it ate all my 16 gb memory during compile. in the past ,i wasted time micro-probing my code by removing section of code but no avail. i did use precompile header to speed up time.but can't get it work with debug flag, causing more headache.(and it don't even work well) If the profiling tool that could tell me that, i would have avoid all these ):