Restore fastpath of Pattern#split

Re-added lost fastpath for Pattern#split
called with single character split regex.

Removed almost identical fastpath from
String#split and made it use the one in
the Pattern class.

Before:
  Trial Report (1 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
      Results:
        runtime(ns): min=61332.97, 1st qu.=62783.21, median=63029.70, mean=63793.72, 3rd qu.=64398.73, max=69335.01
    Trial Report (2 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
      Results:
        runtime(ns): min=62285.54, 1st qu.=62801.82, median=63652.11, mean=64028.37, 3rd qu.=64508.20, max=68743.82
    Trial Report (3 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
      Results:
        runtime(ns): min=3145.06, 1st qu.=3224.04, median=3369.42, mean=3405.25, 3rd qu.=3601.02, max=3714.71
    Trial Report (4 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
      Results:
        runtime(ns): min=96497.74, 1st qu.=102259.06, median=105605.01, mean=105157.62, 3rd qu.=108752.15, max=110870.39
    Trial Report (5 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
      Results:
        runtime(ns): min=3164.36, 1st qu.=3200.15, median=3261.57, mean=3319.27, 3rd qu.=3402.46, max=3727.68
    Trial Report (6 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
      Results:
        runtime(ns): min=3129.43, 1st qu.=3138.40, median=3161.53, mean=3197.32, 3rd qu.=3253.53, max=3359.39

After:
    Trial Report (1 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timePatternSplitComma, vm=default, parameters={}}
      Results:
        runtime(ns): min=3225.99, 1st qu.=3253.19, median=3267.54, mean=3320.92, 3rd qu.=3406.82, max=3436.16
    Trial Report (2 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timePatternSplitLiteralDot, vm=default, parameters={}}
      Results:
        runtime(ns): min=3277.96, 1st qu.=3295.68, median=3339.86, mean=3403.39, 3rd qu.=3539.36, max=3677.60
    Trial Report (3 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitComma, vm=default, parameters={}}
      Results:
        runtime(ns): min=3195.46, 1st qu.=3216.71, median=3247.12, mean=3354.20, 3rd qu.=3510.25, max=3686.05
    Trial Report (4 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitHard, vm=default, parameters={}}
      Results:
        runtime(ns): min=99889.34, 1st qu.=100793.37, median=102606.42, mean=103979.16, 3rd qu.=105644.24, max=115821.46
    Trial Report (5 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitLiteralDot, vm=default, parameters={}}
      Results:
        runtime(ns): min=2926.79, 1st qu.=3080.29, median=3156.58, mean=3144.20, 3rd qu.=3228.23, max=3259.98
    Trial Report (6 of 6):
      Experiment {instrument=runtime, benchmarkMethod=timeStringSplitNewline, vm=default, parameters={}}
      Results:
        runtime(ns): min=3134.79, 1st qu.=3174.47, median=3221.38, mean=3250.06, 3rd qu.=3315.56, max=3492.58

Bug: 28330359
Change-Id: If302b36579cb6b6e9ce6907540e8481057455820
2 files changed