From 5fd1aad98438a260f13b38468a420d3306ed4c10 Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Wed, 25 Jan 2017 18:48:04 +0900 Subject: [PATCH] cache the "hbs.buffer" system property in static field because `System.getProperty` is slow http://stackoverflow.com/q/18045391 --- .../handlebars/internal/FastStringWriter.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/handlebars/src/main/java/com/github/jknack/handlebars/internal/FastStringWriter.java b/handlebars/src/main/java/com/github/jknack/handlebars/internal/FastStringWriter.java index 8d41f747c..514475da3 100644 --- a/handlebars/src/main/java/com/github/jknack/handlebars/internal/FastStringWriter.java +++ b/handlebars/src/main/java/com/github/jknack/handlebars/internal/FastStringWriter.java @@ -29,11 +29,26 @@ * @since 0.1.0 */ class FastStringWriter extends Writer { + + /** + * buffer size for StrBuilder. + */ + private static final int BUFFER_SIZE; + + static { + int value; + try { + value = Integer.parseInt(System.getProperty("hbs.buffer", "1600")); + } catch (Throwable e) { + value = 1600; + } + BUFFER_SIZE = value; + } + /** * The internal buffer. */ - private StrBuilder buffer = new StrBuilder(Integer - .parseInt(System.getProperty("hbs.buffer", "1600"))); + private StrBuilder buffer = new StrBuilder(BUFFER_SIZE); @Override public Writer append(final char c) throws IOException {