Re: DateTime::Lite

[email protected] (Dave Rolsky)
Newsgroups perl.datetime
Message-ID <[email protected]>
On Tue, 25 Nov 2008, Daisuke Maki wrote:

> Yes, I wrote a crude benchmark script in 
> DateTime-Lite/tools/benchmar/load_times.pl
> If you don't load arithmetic and strftime, DT::Lite is twice as fast plain 
> DT.
>
>               Rate           dt dt_lite_full      dt_lite
> dt           46.6/s           --         -13%         -49%
> dt_lite_full 53.7/s          15%           --         -41%
> dt_lite      91.7/s          97%          71%           --
>
>
> And again, /I know/ this isn't that much of a practical problem, because the 
> engineer's correct answer is "if the load time is slow, load it once, and use 
> some sort of persistent environment". This is mainly a marketing issue to my 
> audience, who, for example, includes CGI developers (i.e., persistent 
> environment isn't an option).
>
> BTW, dt_lite_full is almost equivalent to using DateTime.pm, but I /think/ 
> the difference comes from the tweak I did to switch method calls to function 
> calls. That can probably be tweaked in DateTime.pm, if you want me to apply 
> it.

Isn't this just a test of load times? How could using methods vs functions 
make any difference to a module's load times?

I suspect the difference may come from several things:

1. Not loading several modules, including XSLoader and Params::Validate.

2. Not loading an XS component.

3. Not loading a default locale - DateTime ends up loading the en_US 
locale when DateTime.pm is loaded. Your benchmark might actually be 
_understating_ that, since your benchmark doesn't force this module to be 
reloaded as well.

> Creating GVs for each timezone is a waste. Creating one class, then creating 
> instances for each timezones are much cheaper. I discussed this briefly when 
> I was trying to do DateTime::TimeZone::XS, but I got warnocked.

Right, I do remember that.

Yes, it makes sense that not creating all those namespaces would reduce 
memory usage.

I'm a little leary of changing things now, since it'd be backwards 
incompatible. I wonder if anyone actually relies on those objects having a 
namespace that includes the time zone though.


-dave

/*============================================================
http://VegGuide.org               http://blog.urth.org
Your guide to all that's veg      House Absolute(ly Pointless)
============================================================*/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.