Sean, let's do that. I'll recap what I wrote in my 3 last mails.

Hi all,
at the end of February, PHP 5.3 came to me, with an expected number of issues. 
One issue that annoyed me was that a warning is now triggered if a time-related 
function is used without having set the timezone in 3 approved ways: the TZ 
environment variable, the date.timezone PHP directive or calling 
date_default_timezone_set(). Thankfully, Sean Finney made Debian's PHP quiet 
this warning - so PHP now relies on the system timezone (PHP was already able 
to use that as a last recourse, but considered it unreliable, for an obscure 
reason).

But I saw something worrying related to that when attending Rasmus Lerdorf's 
Confoo talk on PHP Performance. The slides are available at 
http://talks.php.net/show/confoo10/
Slides 16 to 20 are relevant. Slide 20 shows that with HipHop PHP, running an 
application relying on the system timezone causes the application to run 25% 
slower (before using date_default_timezone_set, 20% of the time is spent in 
HPHP::TimeZone::Current).

I don't know for sure that baseline PHP is affected as badly, but it seems so. 
I seem to remember the issue is that each determination of the timezone causes 
a syscall - not sure again. It would be nice if somebody could check this...
The application in question is called Twit, and I don't know what it is except 
it was written by Rasmus: 
http://www.ora600.be/news/liveblogging-confoo-not-just-php-performance-rasmus-lerdorf
But many applications use time extensively, so I have no trouble believing this 
case is not an exception.

If this problem is found to be genuine, I have no great solution and I know 
very little about timezone handling but I think caching the timezone for a 
minute or so should be OK - the timezone should change rarely, it probably 
never changes on most Debian installs. We should also be able to look at other 
programs if needed - what happens to Python applications like Trac, for 
example? Even GUI applications use time a lot.

Le mars 17, 2010 02:56:30 AM, Sean Finney a écrit :
> hi filipus,
> 
> how about you bring this up on pkg-php for discussion?
> 
>       sean
> 
> On Tue, Mar 16, 2010 at 09:51:27PM -0400, Filipus Klutiero wrote:
> > Hi Sean and others,
> > I'm back from Confoo 2010 and was able to get up early enough to see the 
> > last 15 minutes of Rasmus Lerdorf's talk on PHP performance. He was 
> > comparing HipHop PHP's performance with PHP's and had an initially slower 
> > result with HipHop. He profiled the HipHop version and after a few changes, 
> > it was still significantly slower than the PHP version. He found that a 
> > date or time function was taking about 15-20% of the execution time due to 
> > system calls querying the timezone. A simple date_default_timezone_set made 
> > the HipHop version take the lead.
> > 
> > Now, I don't know what was the script and whether it used time/date 
> > functions a lot, but it looked like running without date_timezone, TZ and 
> > without calling date_default_timezone_set could have a significant 
> > performance hit if PHP doesn't cache the timezone. Caching the timezone for 
> > a minute or so would seem reasonable if it's not already done. I suppose 
> > the timezone is never changed on most Debian installs.
> > 
> > I leave it to your discretion to determine whether this deserves 
> > investigation. Unfortunately, the slides aren't available, I can only 
> > suggest you ask Rasmus if you want more context.
> > 
> > Thanks for the quick treatment of this bug,
> > Filipus
> > 
> > Le mars 13, 2010 06:51:14 PM, Debian Bug Tracking System a écrit :
> > > This is an automatic notification regarding your Bug report
> > > which was filed against the php5 package:
> > > 
> > > #571762: [php5] please get rid of "Warning: date() [function.date]: It is 
> > > not safe to rely on the system's timezone settings."
> > > 
> > > It has been closed by Raphael Geissert <[email protected]>.
> > > 
> > > Their explanation is attached below along with your original report.
> > > If this explanation is unsatisfactory and you have not received a
> > > better one in a separate message then please contact Raphael Geissert 
> > > <[email protected]> by
> > > replying to this email.



--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to