From: <no...@so...> - 2001-01-31 20:45:53
|
Bug #119148, was updated on 2000-Oct-25 22:02 Here is a current snapshot of the bug. Project: Tcl Category: Channel Types Status: Open Resolution: None Bug Group: 8.0.3 Priority: 6 Submitted by: nobody Assigned to : nobody Summary: IO_PERFORMANCE on NT 80 times slower then on unix Details: OriginalBugID: 948 Bug Version: 8.0.3 SubmitDate: '1998-12-14' LastModified: '2000-06-22' Severity: MED Status: Assigned Submitter: pat ChangedBy: hobbs OS: Windows NT Machine: X86 FixedDate: '2000-10-25' ClosedDate: '2000-10-25' Name: Uwe Traum ReproducibleScript: proc dotest {{filename test.bin}} { set fid [open $filename w] fconfigure $fid -translation binary for { set i 0 } { $i < 2000 } { incr i } { set ind [expr {128*int(rand()*30000)}] #seek $fid $ind start puts -nonewline $fid "123456789012345678901234567890" } close $fid } time dotest 3 [rewritten by hobbs as proc] ObservedBehavior: Output: NT4;local disk;PentiumPro 200: 155172000 microseconds per iteration Solaris2.5;local disk;sparc20: 1844860 microseconds per iteration on unix it's 80 time faster than on NT!!! DesiredBehavior: same speed In FileOutputProc (tcl8.0.3/win/tclWinChan.c,line 560) there is ALWAYS a call to FlushFileBuffers. So every I/O is written directly to disk. That's why the Disk-LED is permanently blinking. What's the reason for this call ? Can it be removed ? thanks -- This is verified in 8.4a1. The disk LED does stay permanently on under NT. Using the Performance Monitor, it does seem that excessive flushing may be occuring. -- 06/22/2000 hobbs Follow-Ups: Date: 2001-Jan-31 12:45 By: dkf Comment: See also Bug #119300 - we've so many unclosed bugs that it is impractical to link related ones... <sigh>) ------------------------------------------------------- Date: 2001-Jan-12 16:35 By: davygrvy Comment: File channel driver on Win* forces a flush. It really doesn't need to, but some file tests depend on it doing a true write to disk. So therefore, it's slower. ------------------------------------------------------- For detailed info, follow this link: http://sourceforge.net/bugs/?func=detailbug&bug_id=119148&group_id=10894 |