Hi Mattias, patch is ok. I am still a bit curious to learn about that high delay caused by getenv ().
Kai 2015-04-01 5:35 GMT+02:00 Dongsheng Song <dongsheng.s...@gmail.com>: > Hi Mattias, > > Could you share your micro benchmark data ? > > In my testing, getenv() is very fast. > > *) unset PRINTF_EXPONENT_DIGITS > > preheat 10000 times, then perform 1000000 times (use 4.67777 seconds) > getenv cost: 4.67777 us > > *) set PRINTF_EXPONENT_DIGITS=3 > preheat 10000 times, then perform 1000000 times (use 3.41991 seconds) > getenv: 3.41991 us > > My CPU is Core2 E6550 at 2.33 GHz. > > On Wed, Apr 1, 2015 at 10:26 AM, Dongsheng Song <dongsheng.s...@gmail.com> > wrote: >> >> Cache getenv() looks a good idea ! >> Patch is OK for me. >> >> On Wed, Apr 1, 2015 at 4:16 AM, Mattias Engdegård <matti...@acm.org> >> wrote: >>> >>> The functions in the __mingw_printf family are very slow because of the >>> getenv("PRINTF_EXPONENT_DIGITS") call that is made every time, even when >>> that information isn't actually needed. >>> >>> Please consider this patch. It only calls getenv once, caching the result >>> (as is traditionally done in libraries that use environment variables this >>> way). It also only computes the minimum exponent digits when actually >>> needed, at most once per format call. >>> >>> With this patch, __mingw_sprintf(buf, "x") goes from being several orders >>> of magnitude slower than the MSVCRT sprintf, to about 66% faster. You don't >>> see this kind of improvement every day. >> >> > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, > sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for > all > things parallel software development, from weekly thought leadership blogs > to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > _______________________________________________ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public