From: "Booker C.Bense" Date: 2006-01-25T09:13:12+09:00 Subject: Re: Mongrel 0.1.1 -- A Fast Ruby Web Server (It Works Now, M -----BEGIN PGP SIGNED MESSAGE----- In article <43D4C8E8.7000606@digitale-wertschoepfung.de>, Sascha Ebach wrote: >> Well, this may be mean, but have you ever considered that "the massive >> amount of features webrick offers" is part of the problem? It's >> difficult to go into a large (or even medium) code base and profile it >> and then add bolt on performance improvements. It can be done, but it >> usually ends up as a wart on the system. >> >> So, rather than try to "fix" WEBrick I'm just considering it a different >> solution to a different set of problems. Mongrel may pick up all the >> features WEBrick has, but right now it's targeted at just serving Ruby >> web apps as fast as possible. > >I suspected something along those lines :) I would probably do the same >because starting from the beginning is always more fun than trying to >understand a large code base. Although I personally think that the latter >doesn't have to be slower. How long could it take to find a dozen slow >spots in webrick? Maybe 2-3 days? Another 2-3 days to tune them? If it were that easy somebody would have already done it. Profiling and optimizing languages like Ruby can be quite difficult, if you do it at the C level you often get results very difficult to interpret or even do anything useful with. I.e. the profiler shows you spending 80% your time in some basic underlying routine of ruby. If you do it at a higher level, the overhead of benchmarking can often skew the results badly. So it's hard to get the data, and optimizing w/o real profiling data is one of the great evils of programming. With simpler apps you can often make a good guess, but in my experience guessing where the time is spent in a more complex application is almost always wrong. _ Booker C. Bense -----BEGIN PGP SIGNATURE----- Version: 2.6.2 iQCVAwUBQ9bAIWTWTAjn5N/lAQGJQAQAgMHiY0RF+WR72pcQi0f67w2q9lUXa9wG 4pB0SfD73IiOU6D9khf8iL2Kf8dpfQ1Ubsmgpi+cVsKYADXnbZSC1Krjd6HT6Uq7 gFaGnNyj3T6VyRZDbacBR6p2NJSZRa68R2o9kkRo0g160H/a47cE+J7fi22HGjbb 1kvYfxXLgso= =Kv8Y -----END PGP SIGNATURE-----