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