Hi Stas,
----- Original Message -----
From: "Stas Malyshev"
Sent: Monday, September 01, 2014
Hi!
It's much more optimized than what's there now, and slightly over the old
implementation. Not sure if I should give the saved patch link, or the
"live compare" (?) on Github, so I'll do both for now:
http://realplain.com/php/microtime_5_4.diff
https://github.com/matt-moo/php-src/compare/PHP-5.4.diff
Against 5.4 since that's what I quickly worked on so it's ready for the
next
5.4 release (Stas?). (Although I guess we're supposed to change the
oldest
branch usually?)
Looking at the patch, it looks like unfortunately it changes a global
structure (_php_win32_core_globals) which breaks binary compatibility. I
think if you move the additional value to the end of the structure it
should be ok though, since other offsets should not change then.
I was wondering about that myself (back when it was changed last, March
2013) when a few members were removed from that structure, so I figured it
was OK to put one back. :-) No problem with binary compatibility then...?
http://git.php.net/?p=php-src.git;a=commitdiff;h=b903d2d6cdf9a9efac181a21e95ea93dc8a864dd#patch5
I'm also not sure how important it is how have it for 5.4. Does the
problem that this patch fixes exist only in older versions of Windows or
on all versions? What are the actual effects of this problem - is it
just lower resolution of microtime or there can be something seriously
wrong with the whole result? If it's just lower resolution, I'd prefer
this to go into 5.5 as the change is pretty extensive.
I don't think the change is that extensive (maybe if you're comparing to
current version ;-)). As I said in my first "5.4 - last call" reply, it's
similar to the previous old version. You can see what was removed from
time.c last March in the above diff... My changes are like a simplified
version of that (there for over a decade), restored, but without the
possibility of "seriously wrong results" (not an issue now either, but we've
also had very low resolution).
The issues, and these changes, don't affect Windows 8/Server 2012 and later
(they have a high-res time function like *nix gettimeofday()). So Win 7 and
before. See referenced bugs: #64633, #65626 (uniqid())
Thanks,
Matt
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php