Pipe performance in TCC v20

May 30, 2008
212
1
#1
I did some tests with the latest build of TCC v20.

One thing I noticed was that pipe performance (or maybe just startup performance) seems to be slower compared to TCC v15.

Can use the test command below for illustration:

Code:
timer on & (dir | type | type | type | type) & timer off
In TCC v15 it takes about 60-65 milliseconds on average. In TCC v20 it consistently takes 15-20 milliseconds longer.

Might there be a way to reduce this? I use the same configuration files for both so should be no differences on that front. TCSTART as well contains the "if %_pipe != 0 quit" command in the beginning. (Both are using the same working directory as well of course)
 

rconn

Administrator
Staff member
May 14, 2008
10,506
94
#2
I ran your example on TCC v20 (59ms) and TCC v15 (53 ms), for a difference of 1.5ms per pipe (with no TCSTART or TCEXIT).

I don't think that's worth spending a lot of time on -- if you don't want the extra features (and the attendant increase in app size & slightly longer load time), you can stick with the old versions.
 
#3
I get the opposite with a test that doesn't rely on the speed of output.
Code:
v:\> timer /q & ( dir /s c:\ | wc ) & timer & ver
  Lines   Words   Chars
 274127 1112416 16247823
Timer 1 off: 12:48:38  Elapsed: 0:00:17.72

TCC  20.00.17   Windows 7 [Version 6.1.7601]
Code:
v:\> timer /q & ( dir /s c:\ | wc ) & timer & ver
  Lines   Words   Chars
 274127 1112416 16178707
Timer 1 off: 12:49:04  Elapsed: 0:00:22.86

TCC  15.01.58   Windows 7 [Version 6.1.7601]
I have noticed recently that console output in v20 is slower, but I haven't been able to come up with definitive tests.
 
May 30, 2008
212
1
#4
@rconn: Yeah, guess you're right.

I was able to decrease the difference between v15 and v20 to about 10msecs by using "echo test" instead of "dir", or by using "dir > nul". About 2.5msecs per pipe here on my computer then.

The always-on anti-virus in Windows 10 has some effect too, disabling it temporarily seems to shrink the difference between v15 and v20 a few additional msecs.