Re: [INTERNALS-WIN] [PATCH] Microsecond resolution and accuracy on Windows
[email protected] ("Matt Wilmas")
| Newsgroups | php.internals |
|---|---|
| Message-ID | <687BE274F5C24DE1A42E3484C7E52B6C@pc1> |
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