Must DateTime load all Locales?
[email protected] ("David E. Wheeler") Tue, 5 Aug 2014 14:06:40 -0700
| Newsgroups | perl.datetime |
|---|---|
| Message-ID | <[email protected]> |
DateTimers,
While profiling Sqitch, I found that the biggest suck on its time (now that I have removed Moose and Mouse in favor of Moo) is DateTime. The reason? It loads all of the locales in its BEGIN block. Run this to see for yourself:
perl -d:NYTProf -e 'use DateTime;' && nytprofhtml --open
Here's the topline:
Top 15 Subroutines
Calls P F Exclusive
Time Inclusive
Time Subroutine
466 1 1 15.6ms 24.4ms DateTime::Locale::_register
1 1 1 11.2ms 119ms main::BEGIN@1
468 2 2 8.65ms 8.65ms Params::Validate::XS::validate (xsub)
1 1 1 8.29ms 8.50ms DateTime::Locale::BEGIN@11
9 9 6 5.23ms 6.44ms base::import (recurses: max depth 2, inclusive time 1.79ms)
1 1 1 3.65ms 7.98ms DateTime::BEGIN@16
1 1 1 3.53ms 4.54ms DateTime::TimeZone::Local::BEGIN@8
1 1 1 3.22ms 21.6ms DateTime::BEGIN@13
1 1 1 2.99ms 3.08ms DateTime::TimeZone::BEGIN@8
1 1 1 2.97ms 3.19ms DateTime::BEGIN@9
1 1 1 2.91ms 4.26ms DateTime::Locale::BEGIN@10
1 1 1 2.74ms 6.58ms DateTime::Locale::add_aliases
24 24 18 2.73ms 2.97ms Exporter::import
1 1 1 2.53ms 2.87ms Try::Tiny::ScopeGuard::BEGIN@144
1 1 1 2.38ms 3.00ms Data::OptList::BEGIN@10
Does DateTime *really* need to always load all 466 locales on startup? Couldn't it load them on demand?
Thanks,
David
signature.asc
(application/pgp-signature, 842 B)
-----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJT4UdgAAoJEJLfYnT4yIHxghwP/jsfOxtejxaSsbswUhfZMWTH YUUpMuczs7CaIofYuYuJk9+0fK0Gw5GZ1LcZIzrl6Y0Lrbygts8thRv3cFrvwD6/ TMEbb7CX/AkokRI8XIN6ed/AQ6W4mvcijO+Ko3PRpzjTuazBCwZeXVCyF/87uXiG RAMAmxAV79raa2bodkN0vT9dpp6WGkYPAXI5rRalABc+vKsNWalw3hZn/LLQsPNN tuYBHWc/veKLofCnpMj9HJSiq0nR4iFKisE5EiLMVCjZJ8td1QRiYlCNCY9CX0/X rF3rTmZvYXji6KJNKWwHTJ/1YKe45kRX4IQmvRtR1fWQLp+NSP1DDDS0SVCzjNeI qANUCn5w0t2GwUSUVMEX+cYQ1IwiWIQ/noU4Bwm7+ujh8cyIavF3JU9dZYVBa0KQ KVfgtzOVsXaYa30s8OMGtfqFMTVtZ7R9jsIrCW6ycr+/ojJWmW3XMbrMB8jAKF4v hMNyiUQKTPzuaHIjUclbwVBH7RLfzRJJyyrlYUg8Zvet2jM5KLucWeyeIha8Hqhk Od+PqOBp3yqgs6EdkMMHbFIId5xVwRL54w6/oF9bqn9npZUSQSRXCwKTNnduerqJ X5yexs2ZwrwiXEqNURffBV1gMqYyifwOG5cTyCxRbMnXROam7O5v8OmxTmZIsGr2 yk0QatLpN4mPARRKKcyK =17JF -----END PGP SIGNATURE-----