X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: Yes, hits=5.8 required=5.0 	tests=BAYES_20,BOTNET,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB
X-Spam-Check-By: sourceware.org
Message-id: <4BB0EA78.8030004@cygwin.com>
Date: Mon, 29 Mar 2010 13:59:20 -0400
From: "Larry Hall (Cygwin)" <reply-to-list-only-lh@cygwin.com>
Reply-to: cygwin@cygwin.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.21) Gecko/20090320  Remi/2.0.0.21-1.fc8.remi Lightning/0.9 Thunderbird/2.0.0.21 Mnenhy/0.7.5.0
MIME-version: 1.0
To: cygwin@cygwin.com
Subject: Re: slow file open
References: <680267dc1003290849s45f96dd6t1eacd043f53f7334@mail.gmail.com>  <680267dc1003290851i67c10a82hf4e5c48a47969320@mail.gmail.com>
In-reply-to: <680267dc1003290851i67c10a82hf4e5c48a47969320@mail.gmail.com>
Content-type: text/plain; charset=UTF-8; format=flowed
Content-transfer-encoding: 7bit
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On 3/29/2010 11:51 AM, Erdem Guven wrote:
> Hello,
>
> My application uses fopen to open a lot of files. While in linux
> opening and reading thousand of files doesn't even take a second; in
> cygwin it takes more than 5 seconds.
>
> I think it is because path conversion functions in cygwin dlls. 'open'
> function is a bit faster. If I use -mno-cygwin it becomes very fast
> but I can't use it.
>
> Is there an easy way to make cygwin dlls just open files; without any
> linux-windows conversion?

Unfortunately, Cygwin 1.7 removed the "run really fast" switch.  Stupid
Cygwin! ;-)

But seriously, the best way to avoid the path conversions is to not use
Cygwin.  Cygwin provides the POSIX paths for compatibility.  If you need
that compatibility, then Cygwin is for you.  If you don't, then maybe it
isn't.  Since you mention above that you cannot use the -mno-cygwin flag
that comes with the (old) compiler, I'm assuming that you have a need for
the POSIX stuff that Cygwin provides.

One possibility of bypassing the path handling in your programis to use
'\' as your path separator in all the file paths.  This won't work in all
cases but it's possible it could help in yours.

-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

_____________________________________________________________________

A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?

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

