Re: [Gimp-developer] Displaying image using GTK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Dec 14, 2003 at 12:46:54PM +0100, Sven Neumann <sven@xxxxxxxx> wrote:
> This sounds like if you had a clue on what is causing the slowliness
> of running configure on Cygnus.

The biggest reason is very slow fork(), followed by extremely slow
select(), filehandle operations, pipes and much more.

Basically, windows makes it very difficult to do simple things, for
example, there is no way to simply wait for events, every type of object
needs a different waiting paradigm. So to use select, cygwin has to start
threads per type of filehandle etc... you can imagine how slow that
becomes.

And fork is simply not window's model of managing processes (instead you
use CreateProcess with 10 arguments...).

Windows isn't based on an efficient process model. If you want to do
"IPC", you 'simply' load a dll into your memory area and start some
threads (which is being called "ActiveX" in the hipper areas of this
world). Real IPC is slow, and not really meant to be used.

Since configure scripts use fork() and IPC a lot, that's why it's slow.

> software on Windows and noticed this shortcoming as well. I wondered
> what might be the cause and if there are ways to work around it. Are
> there any?

Cygwin tries to be correct first, fast second. I don't think there is any
workaround, as it's not really a bug that could be workarounded. One could
sacrifice posix compatibility to some degree to get faster, but configure
scripts will likely always be slow, even if e.g. the sus spawn facilities
are being used.

One "workaround" would be to link in most shell-utilities into your shell,
that would certainly help, to some extent, but don't expect wonders.

This is being written by somebody who doesn't think very highly of the
windows API, keep that in mind :) I am convinced that the major reason for
bad software under windows is the extremely complicated, overloaded and
non-orthogonal API.

-- 
      -----==-                                             |
      ----==-- _                                           |
      ---==---(_)__  __ ____  __       Marc Lehmann      +--
      --==---/ / _ \/ // /\ \/ /       pcg@xxxxxxxx      |e|
      -=====/_/_//_/\_,_/ /_/\_\       XX11-RIPE         --+
    The choice of a GNU generation                       |
                                                         |

[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux