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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.