Wow.... you got some interesting results.
> Are you by any chance running JDK 1.3.1? There's no way I can reproduce
> the first column with the client VM on Windows with my 2.4 GHz machine.
> jdk 1.4.1 is known to be slower on HashMap performance and it shows.
> Test environment: P4 2.4GHz, j2sdk 1.4.1_01
I'm using 1.4.1 on an Athlon 1700+ running Debian Linux. I guess the
default is -client, so I just checked server and it halved most of my
times.. coooool :-) Must remember that for later. As to the
difference... 512Mb DDR Ram might help (speed at least), or maybe
Athlons just kick Pentium ass :-)
>
> Well, not really. I guess what we can see is that a custom Map
> implementation for CayenneDataObject might be a Good Thing and that we
> could consider this at a later time. It wouldn't affect any outside
> clients (maybe except for serialization), but could not only solve the
> equality problem 'correctly' but also be helpful for DataObject
> population: we could do something faster than repeatedly calling
> writeProperty() for each individual attribute.
Yep, and we could fold the writeProperty *into* the Map (custom methods
likely), so the hash lookup would only happen once. Or maybe that's
what you were suggesting.
> Oh, and I'd like to talk to anybody who actually modifies a hundred
> million+ in-memory DataObjects in a single sweep (without a single page
> fault) so that all this makes sense.
Ummmm, nah, can't say I've seen nor expect to see that :-) (And hope not
too :-))
> with vote for a simple equality check in writeProperty() and tongue firmly
> in wine glass,
Not sure what the simple equality gains us, especially in the original
situation (the objects are guaranteed to be different when the
writeProperty is called). Is it actually worth it, given the hit from
readProperty()?
Given all this, would anyone object to the mods to hasChanges going in.
Later, if we do implement a custom Map we can rip it out again.
Comments?
This archive was generated by hypermail 2.0.0 : Tue Feb 11 2003 - 22:39:32 EST