From: Austin S. <te...@of...> - 2002-05-18 00:38:32
|
On Fri, May 17, 2002 at 01:37:33PM -0700, Syamala Tadigadapa wrote: > I have made significant improvement from 24hrs to 4.5hrs. by > clearing accumulator after every time out of 15sec. It could make > more saving if I set the time out to say 3 seconds or so. Now then, > I have still the CPU monopolization occurring of course. As suggested, > I am going to try set the Exp_Max_Accum to 8096. I can reports my > findings once I see them. I have the following questions. > > 1. Why can't I have a method in Expect which can allow me to > truncate the accumulator to the point of pattern matching. If > present, I could simply call the method once I find a match. > This could prevent the buffer/accumulator from choking. > 2. Expect can trim the accumulator at each each match to a > configurable size, say a default of 4k. This should be done > evenly at time out points also. This could as well prevent > accumulator/buffer from choking. The accumulator should be clearing by itself after every successful match, not including timeout. 8096 is the maximum number of bytes that can be read at one time in the current implementation. I would suggest a slightly _larger_ number for the possibility that you will have a pattern match that occurs right at the border between the last read and the current one. If you are having high CPU utilization after you set max accum, I would guess that you are probably seeing many small reads very close together in time rather than one big one, forcing the expect matching engine into action each time. If this is indeed the case it might be possible to put small delays inside the expect matching loop to force it to read in larger chunks. Please let us know how it goes. Thanks, Austin |