[REBOL] Rugby performance starting to fade ...
From: petr:krenzelok:trz:cz at: 19-Feb-2002 10:38
Hi,
as there is some problem with tcp performance on W9x machines (tests for
100x call to echo function is some 44 sec regardless of machine being
P300 or P650), I gave Rugby a test on W2K, 1.4 Athlon XP machine ....
Could some of you, help here with some profiling, please?
console1:
do %rugby.r
serve/with [echo] tcp://:8005
console2:
do %rugby.r
do get-rugby-service http://localhost:8005
s: now/time/precise loop 100 [echo "test"] print now/time/precise - s
I received the performance of some 8 - 9 sec, while older Rugby 4.3
gives 0.59 sec on the some machine! Now, - I am doing something wrong,
or just new version of Rugby have to use some more complexity .... but
the performance drop is, imo, too big to be acceptable, if changes are
not significant ...
So, actually, Maarten - have you performed any benchmarking yourself? I
looked at some sources, and while you refused my proposed unified
/secure refinement usage, to have simply secure and non-secure (default)
behavior separated, you seem to mix those two levels in 'chain function
(too much 'either function usage), and you also add complexity to
compose/decompose message functions, because of your new dialect.
Most ppl using Rugby surely do regard Rugby being a cool product, but we
should be probably more carefull with sudden changes.
So, - what is the reason of a slowdown?
I also performed following simple tests, so, could too much function
call granularity or conditions cause any performance hit in practice? (I
performed each test twice, to avoid random result times)
->> huh: "ble"
== "ble"
->> s: now/time/precise loop 1'000'000 [c: huh] now/time/precise - s
== 0:00:00.77
->> s: now/time/precise loop 1'000'000 [c: huh] now/time/precise - s
== 0:00:00.77
->> s: now/time/precise loop 1'000'000 [either huh [c: huh][c: huh]]
now/time/precise - s
== 0:00:02.96
->> s: now/time/precise loop 1'000'000 [either huh [c: huh][c: huh]]
now/time/precise - s
== 0:00:02.96
->> s: now/time/precise loop 1'000'000 [either huh [c: huh][c: huh]]
now/time/precise - s
== 0:00:02.97
->> f: does [c: huh]
->> s: now/time/precise loop 1'000'000 [f] now/time/precise - s
== 0:00:01.54
->> s: now/time/precise loop 1'000'000 [f] now/time/precise - s
== 0:00:01.59
btw: is there enought ppl intereste in/using Rugby, to create separate
yahoo group for it? Maybe we could discuss it more deeply in there. But
then our main Rugby guru would have to agree he has good intentions to
keep Rugby going ;-)
Anyone?
-pekr-