On May 31, 2015, at 4:24 AM, Corinna Vinschen <corinna-cyg...@cygwin.com> wrote:
> 
> On May 29 17:49, Steven Penny wrote:
>> On Fri, May 29, 2015 at 8:51 AM, Corinna Vinschen wrote:
>>> - Improved performance in terms of SHA512 checksum computation.
>> 
>> Thanks for this, but how was it done?
> 
> It was embarrassingly simple:

That reminds me of a case I ran into a few months ago.

I have some UDP stream reception code that works perfectly on Linux.  Someone 
wanted it on Windows, too, so I ported it in an afternoon, a relatively easy 
task since Winsock is mostly a superset of BSD sockets, and there wasn’t much 
to the app besides Standard C++ and sockets code.

It worked fine on my machine, so I shipped it off, confident that it would work 
just as well as the Linux version.

Then I start getting field reports about dropped packets whenever the machine 
wasn’t perfectly idle while running the app.

This is not a high data rate application.  With the 8 kiB buffers I was using — 
a perfectly sensible size for UDP — it would take about 3 ms to overflow a 
buffer.  That’s approximately forever in CPU time, so I felt it was more than 
adequate, even considering multitasking overheads.

In the end, I had to increase the UDP stack buffers for the Windows port to 64 
kiB to get it to work reliably on Windows, which effectively increased the 
buffer time to ~23 ms.

That means the time-slice delay was somewhere between 3 and 22 ms!  That’s on 
the scale of HDD head seek times, one of the slowest things a computer does!
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to