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-----