আমি কোড সান প্যাট্রিক ফ্লয়েড দ্বারা অনুপ্রাণিত হয়েছি এবং আমি প্রাপ্ত সর্বোচ্চ পারফরম্যান্সের জন্য এটি আবার নতুন করে লিখি।
public static String stripNonDigitsV2( CharSequence input ) {
if (input == null)
return null;
if ( input.length() == 0 )
return "";
char[] result = new char[input.length()];
int cursor = 0;
CharBuffer buffer = CharBuffer.wrap( input );
while ( buffer.hasRemaining() ) {
char chr = buffer.get();
if ( chr > 47 && chr < 58 )
result[cursor++] = chr;
}
return new String( result, 0, cursor );
}
আমি পারফরম্যান্স পরীক্ষা করি ন্যূনতম সংখ্যার সাথে খুব দীর্ঘ স্ট্রিংয়ের এবং ফলাফলটি:
- মূল কোডটি 25,5% ধীর
- পেয়ারার পদ্ধতির পরিমাণ 2.5-3 গুণ কম
- ডি + সহ নিয়মিত প্রকাশটি 3-3.5 গুণ ধীর হয়
- কেবলমাত্র ডি সহ নিয়মিত প্রকাশটি 25+ গুণ ধীর হয়
বিটিডব্লিউ এটি নির্ভর করে যে স্ট্রিংটি কত দীর্ঘ। স্ট্রিংয়ের সাথে কেবলমাত্র 6 টি সংখ্যা রয়েছে পেয়ারা 50% ধীর এবং রেজিএক্সপ্যাক 1 বার ধীর