delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/09/08/11:42:04

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Message-ID: <4C87AEB9.5020001@redhat.com>
Date: Wed, 08 Sep 2010 09:41:45 -0600
From: Eric Blake <eblake AT redhat DOT com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100806 Fedora/3.1.2-1.fc13 Mnenhy/0.8.3 Thunderbird/3.1.2
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: incredibly slow file listing script on windoze 7 pro 4 core 64 bit
References: <AANLkTi=ASzGNwU9TSKU2TZSbAksy6=Pu94=0S5Vt0Sc- AT mail DOT gmail DOT com> <4C86867D DOT 4050509 AT cygwin DOT com> <AANLkTi=rN9OA4Qp0eCbiWN0Kt_pvjDwDVfOERBzR1iCZ AT mail DOT gmail DOT com> <4C87AACB DOT 6050805 AT cygwin DOT com>
In-Reply-To: <4C87AACB.6050805@cygwin.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 09/08/2010 09:24 AM, Larry Hall (Cygwin) wrote:
> To somewhat sooth your curiousity, Windows (or perhaps it's more accurate
> to say NTFS) ain't great with directories with a large number of files.
> I expect you would be less than impressed with the performance of of 'dir'
> in 'cmd.exe' in the same directory. That said, you're asking for allot more
> work than you may realize when doing the same thing in Cygwin. In order to
> fill in the information you ask for when you use the '-l' flag for 'ls',
> Cygwin needs to open and close the files, which takes a good chunk of time
> en masse. The same does not need to happen in Linux/UNIX-land.

Additionally, the stat() interface is puny - it MUST take the time to 
fill out the complete struct, even if the caller only cares for part of 
the information.  If the Linux kernel ever incorporates the pending 
xstat() kernel call[1], then cygwin adds support for it, and coreutils 
is taught to make good use of it, then operations like ls can be sped up 
by asking for only the portions of the stat data that they plan on 
actually using, letting cygwin skip the work of obtaining the rest of 
the stat information just to be thrown away by the caller.

[1]version 6 of that kernel patch is still being debated; as recently as 
http://lkml.indiana.edu/hypermail/linux/kernel/1008.2/00274.html

-- 
Eric Blake   eblake AT redhat DOT com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

--
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

- Raw text -


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