delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2000/03/15/05:02:45

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-developers-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com
Message-ID: <38CF6031.7D7A28BB@vinschen.de>
Date: Wed, 15 Mar 2000 11:04:33 +0100
From: Corinna Vinschen <corinna AT vinschen DOT de>
Reply-To: cygdev <cygwin-developers AT sourceware DOT cygnus DOT com>
X-Mailer: Mozilla 4.72 [en] (Windows NT 5.0; U)
X-Accept-Language: de,en
MIME-Version: 1.0
To: Egor Duda <deo AT logos-m DOT ru>,
cygdev <cygwin-developers AT sourceware DOT cygnus DOT com>
Subject: Re: Cygwin performance (was [ANN] PW32 the...)
References: <19940315002847 DOT 279871F1B AT sabami DOT seaslug DOT org> <0457 DOT 000315 AT logos-m DOT ru>

I have moved this thread to cygwin-developers because those
details are not of interest in the base list, IMHO.

Egor Duda wrote:
> [...]
> basically, reason is following: ls uses "stat" syscall to obtain file
> information. stat returns a handful of parameters, including inode,
> permissions and others. to obtain _all_ that info, cygwin must open file
> (see stat_worker function at winsup/cygwin/syscalls.cc). opening every
> file on network share is pretty slow.
> 
> luckily, most of time application don't need _all_ stat information.
> for example, if you need to get file time or owner or size only,
> there's no need to open file. so, some time ago i've proposed to make
> cygwin1.dll export function "stat_lite", which works similar to
> "stat", but receives additional flags, showing which fields are of
> [...]

No matter of the possible speed up, I don't like this solution
because of...

> note: you have to recompile your application to utilize "stat_lite"
> function.

... that result.

I'm absolutely sure to get a speed up by the following, without
the need of another stat-function:

The current implementation of fhandler_disk_file::fstat() calls
three different functions which each opens the file independently:
get_file_owner(), get_file_group(), get_file_attribute(). I've
already planned to eliminate the first two functions. Instead,
the complete functionality should be offered by get_file_attribute().
This makes sense, because get_file_attribute already knows user
and group. I hope to increase speed noticable that way.

Ah, one hint: This wouldn't change anything when ntsec is OFF. But
in that case neither get_file_owner() nor get_file_group() nor
get_file_attribute() could slowing down things...

Corinna

- Raw text -


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