String's indexOf method

  • Thread starter Ravi Shankar Nair
  • Start date
R

Ravi Shankar Nair

Dear all,

During the debugging process of a data handling project, we have seen by a
profiler that the culprit for long time consuming process is the
java.lang.String's indexOf method.

Finally we though of using a C program instead of indexOf method. Can
anybody provide us a link on such a String class in C or C++, so that we can
make a faster indexOf ? Thanks a million for your time.

Best regards,
Ravi
 
E

Eric Sosman

Ravi Shankar Nair wrote On 02/06/06 10:19,:
Dear all,

During the debugging process of a data handling project, we have seen by a
profiler that the culprit for long time consuming process is the
java.lang.String's indexOf method.

Finally we though of using a C program instead of indexOf method. Can
anybody provide us a link on such a String class in C or C++, so that we can
make a faster indexOf ? Thanks a million for your time.

It's not clear which of the four different indexOf()
methods you're using. Still, no matter which it is, it
is probably doing its job nearly as fast as that job can
be done. You might get a marginally faster something-or-
other in C or C++, but it's unlikely that you'll get a
dramatic speedup. Meanwhile, you'd be giving up Java's
support of international character sets (less than perfect,
but miles ahead of C and C++), Java's protection against
out-of-range arguments (especially in C), and so on.

You're likely to do better not by looking for a faster
indexOf(), but by considering whether indexOf() is being
used wisely. Is the program over-using indexOf() when it
really ought to be using something else? Is it searching
for a one-character String instead of for a single char?
Is it always searching from the beginning of the even when
it's known that the target doesn't appear among the first
thousand characters? Is it searching Strings that are a
hundred megabytes in length? Is indexOf() even the right
tool -- ought you to be using regular expressions, say?

It's been said that the fastest I/O operation is the
one you don't perform. "I/O operation" is just a special
case of a more general observation, of course. I suggest
you re-examine your reasons for using indexOf() so heavily,
and consider whether you ought to be using it differently
or using something else altogether.
 
A

Alun Harford

Ravi Shankar Nair said:
Dear all,

During the debugging process of a data handling project, we have seen by a
profiler that the culprit for long time consuming process is the
java.lang.String's indexOf method.

Finally we though of using a C program instead of indexOf method. Can
anybody provide us a link on such a String class in C or C++, so that we can
make a faster indexOf ? Thanks a million for your time.

The code for indexOf(String str) probably compiles very well. Also, since
String is a final class, it's probably actually implemented by hand by the
writer of the JVM. You are highly unlikely to beat it.

Alun Harford
 
J

Joe Attardi

Slightly off-topic, but hey Eric, don't know if you remember me but I
used to work in your group at Sun as an intern... good to see a
familiar face out here in Usenet!

Joe Attardi
 
E

Eric Sosman

Joe Attardi wrote On 02/06/06 16:11,:
Slightly off-topic, but hey Eric, don't know if you remember me but I
used to work in your group at Sun as an intern... good to see a
familiar face out here in Usenet!

Sorta thought you might be that Joe Attardi.
But this brings up a problem: If somebody out there
in Usenet actually knows me, my carefully-nurtured
reputation for sagacity is likely to be exploded by
the truth ...
 
J

Joe Attardi

Eric said:
Sorta thought you might be that Joe Attardi.
But this brings up a problem: If somebody out there
in Usenet actually knows me, my carefully-nurtured
reputation for sagacity is likely to be exploded by
the truth ...

Don't worry. I won't tell. :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top