diff options
| -rw-r--r-- | apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java b/apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java index a976de393263..2ab8ac0046ee 100644 --- a/apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java +++ b/apct-tests/perftests/core/src/android/text/StaticLayoutPerfTest.java @@ -58,6 +58,19 @@ public class StaticLayoutPerfTest { + "180℃で揚げ、衣がきつね色になったら引き上げて、油を切る。" + "盛り付けて出来上がり。"; + public static final String KO_TEXT_SHORT = "모든 인류 구성원의 천부의 존엄성과 동등하고 양도할 수 없는 권리를"; + // About 530 chars + public static final String KO_TEXT_LONG = "모든 인류 구성원의 천부의 존엄성과 동등하고 양도할 수 없는 권리를" + + " 인정하는 것이 세계의 자유, 정의 및 평화의 기초이며, 인권에 대한 무시와 경멸이 인류의 양심을 격분시키는" + + " 만행을 초래하였으며, 인간이 언론과 신앙의 자유, 그리고 공포와 결핍으로부터의 자유를 누릴 수 있는 세계의" + + " 도래가 모든 사람들의 지고한 열망으로서 천명되어 왔으며, 인간이 폭정과 억압에 대항하는 마지막 수단으로서" + + " 반란을 일으키도록 강요받지 않으려면, 법에 의한 통치에 의하여 인권이 보호되어야 하는 것이 필수적이며," + + "국가간에 우호관계의 발전을 증진하는 것이 필수적이며, 국제연합의 모든 사람들은 그 헌장에서 기본적 인권," + + " 인간의 존엄과 가치, 그리고 남녀의 동등한 권리에 대한 신념을 재확인하였으며, 보다 폭넓은 " + + "자유속에서 사회적 진보와 보다 나은 생활수준을 증진하기로 다짐하였고, 회원국들은 국제연합과 협력하여 인권과" + + " 기본적 자유의 보편적 존중과 준수를 증진할 것을 스스로 서약하였으며, 이러한 권리와 자유에 대한 공통의" + + " 이해가 이 서약의 완전한 이행을 위하여 가장 중요하므로,"; + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); @@ -560,4 +573,118 @@ public class StaticLayoutPerfTest { .build(); } } + + @Test + public void testCreate_KOText_Phrase_Short() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_SHORT; + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } + + @Test + public void testCreate_KOText_Phrase_Long() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_LONG; + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } + + @Test + public void testCreate_KOText_Phrase_LongLong() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_LONG.repeat(20); // 250 * 20 = 7000 chars + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } + + @Test + public void testCreate_KOText_NoPhrase_Short() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_SHORT; + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_NONE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } + + @Test + public void testCreate_KOText_NoPhrase_Long() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_LONG; + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_NONE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } + + @Test + public void testCreate_KOText_NoPhrase_LongLong() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + final String text = KO_TEXT_LONG.repeat(20); // 520 * 20 = 10400 chars + final LineBreakConfig config = new LineBreakConfig.Builder() + .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_NONE) + .build(); + final TextPaint paint = new TextPaint(PAINT); + paint.setTextLocales(LocaleList.forLanguageTags("ko-KR")); + while (state.keepRunning()) { + state.pauseTiming(); + Canvas.freeTextLayoutCaches(); + state.resumeTiming(); + StaticLayout.Builder.obtain(text, 0, text.length(), paint, TEXT_WIDTH) + .setLineBreakConfig(config) + .build(); + } + } } |