5 ms·
So, the get max pref from the Windows kernel, the software should use the completion port API, and not regular threads/locks. https://docs.microsoft.com/en-us/
by streetcat1 7y ago
So, the get max pref from the Windows kernel, the software should use the completion port API, and not regular threads/locks.
https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-co...
However, any software that does that will likely NOT be cross platform.
In addition, if you want to benchmark the kernel, you should run against ram disk and not SSD.
- dragontamer 7y agoIn the general case, to maximize performance on any platform requires you to use platform-specific code. There are some decent "cross platform" platforms, such as Java or C#, which have a better degree of performance compatibility. But if you're working at the system level (aka: PThreads / epoll with Linux, or Windows Threads / Critical Sections / Completion Ports), you need to use the OS-specific code to truly reach best performance. Java, especially with high-performance JVMs like Azul, can be surprisingly efficient. But to achieve the best performance on the Java Azul Zing runtime, means to use Java Azul-specific libraries! Once again, tying yourself down to a platform. As it turns out, performance is the hardest thing to port. You can somewhat easily port functionality to any system and kludge things together (with effort, your C# code can port over to .Net Mono and run on Linux). But to actually get performance guarantees with primitives is almost always platform specific testing. Case in point: you may make certain assumptions about the Linux scheduler, only for the Linux scheduler to change from O(n) to O(1) to Completely Fair, and today the System Admin can change scheduler details to better tune the needs of your application. These things have an effect on performance that make it difficult to port between systems... or even between the SAME system running slightly different configurations (ex: misconfigure Huge Pages on one box)
- streetcat1 7y agoRight. So in this case, what does the article compare?
- dragontamer 7y agoOh yeah, I'm agreeing with you for sure. I don't know what to say about the article, aside from Windows vs Linux comparisons almost always have a degree of inaccuracy. In this case, Phoronix are clearly Linux experts and I fully trust their Linux data. Its very difficult to find someone who knows how to optimally compare Windows vs Linux, because most people only really learn one platform. I've taken it upon myself to become a "jack" in both platforms (having neither the expertise of a Windows expert, nor a Linux expert), so I'm better positioned than most to see and understand cross-platform issues. But very few people bother to learn both systems. (And frankly, most people don't have to learn the other system, so why bother learning? You really can make a solid career on one OS without ever thinking about the other one...)