On 12/12/09 12:45 PM, Michael Gentry wrote:
Here is the result of our initial tests:
http://spreadsheets.google.com/pub?key=tNytbSdt5wYIRTmTl4L-cCA&output=html
* Are we to assume that all numbers are milliseconds?
* How are you timing? From when the first thread starts until the last one
completes? What do your results look like with one thread? Are you seeing some
locking/concurrency issue?
* There is so much variance between runs that something is odd here. What are
you doing between runs to clear the cache? How are you dealing with variability
at the database? Is the database running on another server which is unloaded
and isn't itself interfering with the results?
* The huge variability makes me think that memory pressures might be important.
Are you seeing the JVM garbage collect during the middle of some runs? Can you
run jstat and see if that is interfering.
* Are you able to pick the worst case (update) and time the various parts:
create context, database UPDATE, commit finished... In your tests are you
timing creating the context or is that outside the timing loop?
* can you compare the SQL generated by the two ORMs and see if there is any
difference at the database level
Just a few thoughts....
Ari
--
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A