Significant performance drop when locale is set and runtime library is using DLL (/MD)

  • Thread starter Thread starter johnzhuca
  • Start date Start date
J

johnzhuca

Guest
We noticed that the performance of string functions for MBCS like _tcscat (_mbscat), _tstof (atof), _tcsstr (_mbscpy) has been hit significantly if we set the locale LC_CTYPE to system default, and use the runtime library with Mutli-thread DLL (/MD). With /MD, it will be 50% slower; while if use runtime library with Multlthread (/MT), with same code it only drops 15-20%. We understand when a locale is set, it could get slower for string functions, but why /MD cause significant hit? Isn't the implementation same in either a lib or a dll for the runtime libraries?

Is there any thing to improve the performance? We are switching the projects from /MT to /MD and to support user's native languages, it is hard to accept such performance drop.

The demo code is on github if required.

Continue reading...
 
Back
Top