Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com From: egb AT us DOT ibm DOT com X-Lotus-FromDomain: IBMUS To: "Jonas Jensen" cc: "Cygwin List" Message-ID: <85256951.00419DE9.00@d54mta04.raleigh.ibm.com> Date: Tue, 5 Sep 2000 07:56:32 -0400 Subject: Re: printf is faster when piped through tee Mime-Version: 1.0 Content-type: text/plain; charset=us-ascii Content-Disposition: inline In past Unix systems the reason for the performance change you see was because the stdio library detects a non-tty output stream and buffers. Than means that instead of doing 100 system calls you would only do one. Try putting a flushb() in after the printf. If the performane of all three degrade to roughly equivalient then stdio buffering is the culprit Ed Bradford Your Windows 2000 Arborist T/L 589-4410; Outside: 1-919-993-4410 egb AT us DOT ibm DOT com "Jonas Jensen" @sources.redhat.com on 09/02/2000 10:11:08 AM Sent by: cygwin-owner AT sources DOT redhat DOT com To: "Cygwin List" cc: Subject: printf is faster when piped through tee Something's wrong with the performance of printf. When compiling with gcc, printf executes much slower than with Microsoft's "cl". The funny thing is that when I pipe those programs through "tee", they're both (equally) fast. This is my test program: ------------------------------------------------ #include #include void main(int argc, char** argv) { register int i; if (argc != 2) return 1; i = atoi(argv[1]); while (i--) printf("%i bottles of beer on the wall...\n", i); } ------------------------------------------------ Here are the scores of 1000 loops through this program, in seconds, measured with the "time" keyword in bash. cl: 0.561 gcc: 10.055 gcc/tee: 0.861 cl/tee 0.861 It appears that there's a way to print faster, because "cat" has no problem, while "ls" and others suffer badly from it. Can anyone explain/fix this? I'm using Win2k, Cygwin 1.1.4. -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com