> On Apr 29, 2019, at 7:18 AM, Richard Hipp <d...@sqlite.org> wrote: > > On 4/29/19, Jose Isaias Cabrera <jic...@outlook.com> wrote: >> >> I know I can probably use cygwin to run this tool, but plain Windows is not >> an option, right? >> > > Althttpd is built around fork(). Windows does not support fork(). > The cygwin implementation of fork() is convoluted, and I suspect slow, > though I have not actually confirmed that.
Yes, it’s a known issue: https://www.cygwin.com/faq.html#faq.api.fork So far as I know, none of the past attempts to get around that weakness have succeeded. WSL uses an entirely new mechanism to solve this problem. See this video, beginning at 9:25: https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/ That should make it faster than Cygwin, though I’m not aware of any benchmarks specifically testing fork() performance between the two. My understanding is that Cygwin cannot take advantage of the WSL fork() facility due to the walls Windows puts up at the kernel level between so-called “subsystems”. A process is either Win32 or WSL; it cannot be both at the same time. Cygwin is, by its nature, tied to the Win32 subsystem. A third alternative would be running Linux in a VM. As long as the process isn’t disk-bound, that could be faster than either Cygwin or WSL for fork() heavy processes. If you’ve ever run an Autoconf configure script under Cygwin vs. a VM, that’s why the VM is so much faster: shell scripts do almost everything via fork(). A middle ground is Docker for Windows. I hesitate to speculate on its speed compared to the other three, but I think there’s reason to hope it could be a good option. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users