Edit report at http://bugs.php.net/bug.php?id=49996&edit=1

 ID:                 49996
 Comment by:         rstein2000 at gmail dot com
 Reported by:        dor at videocells dot com
 Summary:            DateTimeZone::getTransitions performance drop
 Status:             No Feedback
 Type:               Bug
 Package:            Performance problem
 Operating System:   Centos 5.2 64 bit
 PHP Version:        5.3.0
 Assigned To:        derick
 Block user comment: N

 New Comment:

I am experiencing the same issue.



The PHP is built through cPanel's easyapache script from your sources
and is 

currently affecting PHP 5.3.3.  Platform is CentOS.



Test code to replicate the issue:



<?php

$timezone = "UTC";

$tz = new DateTimeZone($timezone);

$tzarray = $tz->getTransitions();

?>



Just calling getTransitions(); is enough to trigger the regression. 
Time tests 

with and without that call:



With:

time php -q tztest.php

real 0m0.459s

user 0m0.404s

sys 0m0.054s



Without:

time php -q tztest.php

real 0m0.092s

user 0m0.023s

sys 0m0.068s


Previous Comments:
------------------------------------------------------------------------
[2010-02-18 01:00:00] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------
[2010-02-10 16:57:41] der...@php.net

Are you using Centos' packages?

------------------------------------------------------------------------
[2009-10-28 07:52:30] der...@php.net

It's indeed quite a bit slower... not sure if this is a *bug* though,
but will check it out.

------------------------------------------------------------------------
[2009-10-28 06:56:30] dor at videocells dot com

I have two exact computers in terms of OS installation and apache/php
configuration (except the php 5.3 against php 5.2.9)



the average speed this function takes to run in php 5.2.9 is :

float(0.015974044799805) float(0.0457763671875) float(0.045061111450195)
float(0.65398216247559) float(0.92506408691406) float(0.70810317993164)
float(0.19216537475586) float(0.32210350036621) float(0.73885917663574)
float(0.16283988952637) float(0.94914436340332) float(0.62394142150879)
float(0.25200843811035)....

while on php 5.3 its :

float(63.025951385498) float(62.762022018433) float(62.709093093872)
float(63.004970550537) float(63.482046127319) float(63.012838363647)
float(62.775135040283) float(62.896966934204) float(63.131093978882)
float(63.91716003418) float(63.18211555481) ....



its 60 times slower.



can i somehow send a print screen, or attach the printouts of both
computer's phpinfo() ?

------------------------------------------------------------------------
[2009-10-27 22:27:17] j...@php.net

With this simplified and working (!) script I get exactly same results 

with PHP_5_2, PHP_5_3 and HEAD of today:



<?php

$timezoneArray = array (

"(GMT -12:00) International Date Line West" => "Etc/GMT+12",

"(GMT -11:00) Midway Island, Samoa" => "Pacific/Midway",

"(GMT -10:00) Hawaii" => "US/Hawaii",

// many many more time zones...

"(GMT +12:00) Auckland, Wellington" => "Pacific/Auckland",

"(GMT +12:00) Fiji, Kamchatka, Marshall Is." => "Asia/Kamchatka",

"(GMT +13:00) Nuku'alofa" => "Pacific/Tongatapu");



foreach ($timezoneArray as $TimezoneDescription => $TimezoneID)

{

  $res = timezone_open($TimezoneID);

  if($res)

  {

    $start = microtime(true);

    $trans = $res->getTransitions();

    $end = microtime(true);

    var_dump(1000 * ($end - $start));

  }

}

?>



Now, where is the performance issue here?

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=49996


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=49996&edit=1

Reply via email to