Different results of java and C verion of same program ?
David Balazic
david.balazic@hermes.si
Fri Mar 10 15:29:00 GMT 2006
From: Mark Wielaard [mailto:mark@klomp.org]
>
> On Wed, 2006-03-08 at 11:06 +0100, David Balažic wrote:
> > The main part of the program is a double loop, comparing
> each element of
> > a Vector
> > with all other elements of the Vector (except itself).
> >
> > Any ideas for speedup ?
>
> A Vector is synchronized on all operations. If you don't need this try
> using an ArrayList and loop over it with an Iterator. gcj might not
> optimize away the synchronized accesses on Vector.
I use a Vector, becasue I fill it with data read from file and I don't know
beforehand the amount of data.
Should copy the data over to new ArrayList, after the Vector is done ?
Unrelated to gcj :
I implemented a better algorithm, which is O(n) instead of O(n*n)
and compared Sun JIT to a C++ port. The C++ version is twice slower :-)
Regards,
David
More information about the Java
mailing list