Messages in this thread | | | Date | Fri, 2 Oct 1998 22:39:56 +0200 | From | Kurt Garloff <> | Subject | Re: RT sceduler patch (testing...) |
| |
On Fri, Oct 02, 1998 at 10:07:09AM +0200, Hans Eric Sandström wrote: > Result: Affects on non rt sceduling was not measuable by my (non > scietific method). If anyone wants to they could calculate std.dev and > try to interpolate the results. There might be a slight performance > degradation, but the variance of the results are to big. > ...
Sure?
> I did not warm up caches, so ignore first line (make -j 1) and I know I > wrote 29 29 in the script.
Here are the results: rt-patch (all lines but the first): 34 values used User time: Mean: 810.697647059 +- 3.2574022123 (StdDev: 18.9937556021) System time: Mean: 53.4855882353 +- 0.151610011461 (StdDev: 0.884030683604)
Non-rt-patch: 41 values used User time: Mean: 797.34097561 +- 2.59335388377 (StdDev: 16.6055671094) System time: Mean: 53.5709756098 +- 0.124807073008 (StdDev: 0.799155194184)
(Yes, the lines with indices 14 and 15 are twice in your output, as is 29, but 28 is missing) TCL-script to calc the results is appended.
If I didn't get anything wrong (it's some time since I learned how to use statistics) the samples' user times are clearly different.
(t-test with error prob. of 1% => c=2.39; t=3.25 > c => The probability of getting results differing in spite of the samples being the same is less than 1%. So we are almost sure that there is some significant difference.)
The systems' time difference is not significant, BTW.
There could be another reason for that, but the results suggest that the rt-patch introduces a small, but measurable performance decrease. I like the idea of the rt queue, but your results don't encourage introduction of Richard's patch into the kernel.
Are your results repeatable?
-- Kurt Garloff, Dortmund <K.Garloff@ping.de> PGP key on http://student.physik.uni-dortmund.de/homepages/garloff #!/usr/bin/tclsh
proc calc_stat { n sx sx2 } { set stddev [expr sqrt(($sx2-$sx*$sx/$n)/($n-1))] puts "Mean: [expr $sx/$n] +- [expr $stddev/sqrt($n)] (StdDev: $stddev)" }
# main set utm 0 set utm2 0 set stm 0 set stm2 0 set n 0 while {![eof stdin]} { set line [gets stdin] if [regexp {([0-9\.]+)u[^ ]* ([0-9\.]+)s} "$line" dum ut st] { incr n #puts "$n: $ut u + $st s" set utm [expr $utm + $ut] set utm2 [expr $utm2 + $ut*$ut] set stm [expr $stm + $st] set stm2 [expr $stm2 + $st*$st] } } puts "$n values used" puts -nonewline " User time: " calc_stat $n $utm $utm2 puts -nonewline "System time: " calc_stat $n $stm $stm2
| |