Flush is, in the store benchmark I used, called from from
MultiByteFileStream(WriteStream) >>#nextChunkPut: and from
CompiledMethod>>#putSource:inFile:withPreamble: ... when I comment out
calling flush in these two methods, it is fast like when whole content of
flush method is commented out. However, If I keep these two flush calls
commented, but I once call flush manually in the end of the "store" code, it
is slow again (well, instead of 8-18 runs per sec it runs 40-50 times per
sec, but it is far from 9000 when flush does not happen at all). It seems to
me like the problem is not in how many times flush is called, but more in
what actually happens when flush is called (how is the primitive primFlush:
achieved on Windows).

Jan


Nicolai Hess wrote
> 2015-07-02 19:01 GMT+02:00 Sven Van Caekenberghe <

> sven@

> >:
> 
>> #flush on a stream means pushing all data to the final destination,
>> clearing buffers, doing actual network transfers.
>>
>> What can happen when you disable that ?
>>
>> That some data does not arrive where it should I guess.
>>
>> Mind that #close most of the time does an automatic/implicit #flush.
>>
>> Anyway, I don't think disabling #flush is a real solution.
>>
> 
> +1
> 
> Maybe it is enough, if we remove the call to "self flush" in
> WriteStream>>#nextChunkPut:
> ?
> 
> I see that squeak does not call flush, and :) in Squeak
> WriteStream>>#flush
> is empty (!)
> (But I think in squeak and pharo are many differences for stream and
> source/changes handling)





--
View this message in context: 
http://forum.world.st/Slow-compilation-on-one-of-my-Windows-PCs-tp4834668p4835471.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Reply via email to