Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / February 2006

Tip: Looking for answers? Try searching our database.

String's indexOf method

Thread view: 
Ravi Shankar Nair - 06 Feb 2006 15:19 GMT
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
Eric Sosman - 06 Feb 2006 15:45 GMT
Ravi Shankar Nair wrote On 02/06/06 10:19,:
> Dear all,
>
[quoted text clipped - 5 lines]
> 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.

Signature

Eric.Sosman@sun.com

Ranganath Kini - 06 Feb 2006 16:25 GMT
I completely agree! :-)
Joe Attardi - 06 Feb 2006 21:11 GMT
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
Eric Sosman - 06 Feb 2006 21:45 GMT
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 ...

Signature

Eric.Sosman@sun.com

Joe Attardi - 06 Feb 2006 22:03 GMT
>     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. :)
Alun Harford - 06 Feb 2006 18:06 GMT
> Dear all,
>
[quoted text clipped - 5 lines]
> 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


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.