Thursday, November 15, 2007

Some benchmarks

Yesterday I ran some benchmark tests against Seaside on Dolphin, Squeak and VW.

The test is basically a brute force conection initiation, against the basic Seaside Counter.

I won't do any analysis or conclusion yet, just some observations, however I'm publishing the results for you our own review.

All the test were ran by separate in the same machine, an Athlon64 X2 3600+, 1GB RAM, Windows XP Pro.
Simulating 20 concurrent users starting connections against the server, one after the other, to see how much load it can handle.

Dolphin (Swazoo 1.1.4):
http://emaringolo.users.dolphinmap.net/seaside/reports/20071114/SeasideDolphin.html

Dolphin stopped answering connections when they reached the 8000, however, during the test, the image (a workspace) was still responsive (slow, but usable). Once the test ended, the image was responsive again, having more than 8000 instances of WASession, invoking a garbage collect with all those sessions in memory (with all its continuations, i.e. processes), caused a failure, and Windows showed a message saying "Dolphin Smalltalk stop responding". Why it happens at that moment, is unknown to me.

Squeak (Kom 6.2):
http://emaringolo.users.dolphinmap.net/seaside/reports/20071114/SeasideSqueak.html

The result for Squeak are similar as Dolphin. Same number of instances (average), with the difference of no having "processes" for its continuations, during the test the workspace wasn't responsive as Dolphin's one, but you can evaluate some expressions, and with patience get the print-it or do-it. But passed the test without dying. Invoking a GC forced me to interrupt the VM, because the GC blocked it.

VW (WebToolkit):
http://emaringolo.users.dolphinmap.net/seaside/reports/20071114/SeasideVW.html

VW started answer a large number of hit per second, which was as expected considering its fast VM, but started to halve its performance, and in less than 2 minutes started to show "Process Emergency" (or something similar I don't remember exactly). During the test all the windows were a dark grey rectangle, so no interaction can be done. After two minutes of test, the VM showed a out of memory message, and died abruptly.

Labels: ,

Sunday, November 11, 2007

Keep it candy

Spurred by the latest addition to the Dolphin autocompleter done by Udo Schneider, I added some icons to the Seaside and Scriptaculous classes, this way will be easier to identify them (apart from its class prefix), and it will be nicer, as Dolphin itself is (well... Dolphin isn't nicer, it's definitely the nicest).

I'll publish this modification in the next release.

Labels: , , ,

Tuesday, November 06, 2007

Less is more

A stated in other Smalltalk blog, less is more. And that was the case with the suspended processes left when running Seaside on Dolphin, to fix it I had to "remove" code, not to add.

Removing one method send in Continuation>>#value:, everything started to work as expected.

The only thing remaining is the reference to some dead processes of Swazoo (HTTPConnection>>#interact) by some handlers of Seaside, once done, Seaside on Dolphin will rock!

Labels: ,

Benchmarking

I've been running some benchmarks against Seaside on Dolphin.

I must say it runs very well, with an good page/sec rate for business apps. Anyway it can't handle being "slashdotted".

However, there is a severe problem with something leaving dangling processes in suspended or dead state, which collapses the image after 4 minutes of brute requests (above 8000 requests one after the other), generating a similar number of processes (think of it, 8000 processes!!!!).

Something smells near the Continuation implementation. Once solved the request rate should rise.

I'll publish the graphs and results when I learn how to do it. :-)

Even with that "little" problem, the performance is a little better than the Squeak implementation (15% faster).

More coming soon...

Labels: , ,

Thursday, November 01, 2007

Evergreen Terrace

When all is green, I feel happy:

Doesn't it look pretty?

And of course, it's running on Dolphin X6.

The status is:
  • All the tests passes
    • The Unicode tests were omited because Dolphin doesn't support unicode
  • Some processes are left suspended, when I clear the handlers they leave, something is referencing them
  • I learnt how to use Monticello (nice tool)
  • The web based browser doesn't work, I'll will try to fix it, however it's not prioritary.
This looks promising...

Labels: , ,

Wednesday, October 31, 2007

Third time's charm

This is the third time I begin to port Seaside. First was 2.6, then 2.7 and now 2.8.
And this time I'm not doing it in my spare time at home, now I'm doing it here where I work, at InfOil, in an effort to "webify" our new platform which as always in our company is developed with Smalltalk. So now I'm suposed to be able to work on this during my working hours, and then cooldown at home.

By now I can say that this time Seaside is better factored, probably because of the GemStone port and because project maturity itself.

So far is going well, with only 7 failed test over 171.

Let's see if this time a dolphin can be sought near the Seaside.

Labels: , ,

web site analysis