delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2001/09/08/21:00:24

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-developers-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com
Date: Sat, 8 Sep 2001 21:00:21 -0400
From: Christopher Faylor <cgf AT redhat DOT com>
To: cygwin-developers AT cygwin DOT com
Subject: Re: cygwin slowdown in current cvs version
Message-ID: <20010908210021.A26764@redhat.com>
Reply-To: cygwin-developers AT cygwin DOT com
Mail-Followup-To: cygwin-developers AT cygwin DOT com
References: <130160175780 DOT 20010908204017 AT logos-m DOT ru> <127165775081 DOT 20010908221336 AT logos-m DOT ru> <186168543292 DOT 20010908225944 AT logos-m DOT ru> <20010908155203 DOT C12571 AT redhat DOT com> <20010908222326 DOT B937 AT cygbert DOT vinschen DOT de> <20010908164412 DOT B13528 AT redhat DOT com> <999994387 DOT 9504 DOT 118 DOT camel AT lifelesswks> <20010908201640 DOT B22847 AT redhat DOT com> <999995212 DOT 11607 DOT 7 DOT camel AT lifelesswks>
Mime-Version: 1.0
In-Reply-To: <999995212.11607.7.camel@lifelesswks>
User-Agent: Mutt/1.3.21i

On Sun, Sep 09, 2001 at 10:26:49AM +1000, Robert Collins wrote:
>On Sun, 2001-09-09 at 10:16, Christopher Faylor wrote:
>> On Sun, Sep 09, 2001 at 10:13:06AM +1000, Robert Collins wrote:
>> >On Sun, 2001-09-09 at 06:44, Christopher Faylor wrote:
>> >> On Sat, Sep 08, 2001 at 10:23:26PM +0200, Corinna Vinschen wrote
>> >> 
>> >> If we were going to do that, though, we should set up one global "change
>> >> notification" handle for /etc/group and /etc/passwd, right?
>> >
>> >After a quick MSDN scan, I couldn't see any per file scanning mechanism.
>> >which means notification on /etc is about it (barring fancy tricks like
>> >/etc/changingdata/passwd and /etc/passwd->changindata/passwd :])
>> 
>> A google search reveals some undocumented calls that allow you to track
>> all sorts of things.
>> 
>> After a little more testing, it seems like the slowdown is actually due
>> to the FindFirstChangeNotification call.  If I add that and avoid the
>> WaitForSingleObject, I still get a noticeable slowdown.
>
>mm, let me see.. that FindFirstChangeNotification should only get called
>once in each process? It sounds like you are saying that having called
>it, everything slows down - but that doesn't sound right to me. Explorer
>uses this all the time, for every open window, and it's still
>responsive.

My test just added an essentially "do nothing"
FindFirstChangeNotification call.  Other than calling this function,
cygwin should have been equivalent to its state prior to Corinna's
change.  Just the one call caused a slowdown.

I think I was wrong when I said that FindFirstChangeNotification caused
a slowdown relative to Corinna's other method.  That doesn't seem to
be the case.  I was probably comparing the wrong things.

I changed things so that the handle from FindFirstChangeNotification is
opened once and passed to all children.  That seemed to help things a
lot.  It's nearly as fast as 1.3.2, now, AFAICT.

I'll submit a patch for Corinna's review as soon as I have convinced
myself that I haven't somehow fooled myself about this.  I'm rebuilding
an honest-to-goodness 1.3.3 release now so that I can compare DLLs
which were built equivalently.

cgf

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019