Re: DateTime performance

[email protected] ("Philipp K. Janert")
Newsgroups perl.datetime
Message-ID <[email protected]>
On Thursday 03 May 2012 02:14:45 you wrote:
> > From: Philipp K. Janert [mailto:[email protected]]
> > Sent: Wednesday, 2 May 2012 8:29 AM
> > 
> > Question:
> > 
> > When using DateTime for a large number of
> > instances, it becomes a serious performance
> > drag.
> 
> ...
> 
> > Is this expected behavior? And are there access
> > patterns that I can use to mitigate this effect?
> > (I tried to supply a time_zone explicitly, but that
> > does not seem to improve things significantly.)
> 
> Hi Phillip,
> 
> My #1 tip is to pre-prepare/cache the DateTime::TimeZone object and pass it
> in to each creation of a DateTime object (via whatever mechanism you're
> using to do that). I have seen a case where we were using time_zone =>
> 'local' in a reasonably tight datetime object creation loop and saw
> significant speed increases just by cutting out that chunk of processing.
> 
> In hindsight that was a silly thing to do but it became an easy win :-)
> 
> I apologise if this is what you meant by supplying a time_zone explicitly
> in your comment above.

I have tried to specify the timezone explicitly as a string:
  $dt = DateTime->new( ..., time_zone => "America/Chicago" )
which does not seem to help, but I have not tried to do:
  $tz = DateTime::TimeZone( 'America/Chicago' )
  $dt = DateTime->new( ..., time_zone => $tz )

I'll try that the next time I have to process one of my data
sets again. ;-)

Thanks for the hint.

> 
> I can't recommend using a tool like NYTProf highly enough on a run of your
> tool to spot the low hanging fruit. See
> https://metacpan.org/module/Devel::NYTProf
> 
> Cheers,
> 
> Andrew
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.