Hi, I have an admittedly naive and vague question for you guys.
After measuring performance of a by-design very simple servlet (returning random entries from a 10k-entry static hashmap) with Apache JMeter running 500 simultaneous threads, I got an awesome (at least for me) 7400 requests/second performance.
My experiment was not serious at all: it was performed with stressor and server running on the same host (i.e., competing for resources, hitting localhost instead of WAN), etc. However, running the exact same quick-and-flawed test against an equally simple and otherwise equivallent java app listening to a port, I got only 650 req/sec.
So the question is: could the optimizations GlassFish has (such as thread pooling, etc) explain so great a difference in performance? Or is it more likely that the simple stress test fails to cover some important factor?
Benchmarks were run on an Intel Core 2 E8400 Wolfdale at 3.0 GHz CPU, 2 GB DDR2 1066 MHz (5-5-5-15) memory, on Ubuntu 8.04.2 64-bit OS. top command showed a consistent 360-400 MB memory usage for the stressed application (either app or servlet).
Any clues (apart from: do some serious test instead of feeding us bullshit)?
Thanks
lexlythius
[Message sent by forum member 'lexlythius' (lexlythius)]
http://forums.java.net/jive/thread.jspa?messageID=345291