From 286faa354fb1e1f1130826a2113699a7d8362239 Mon Sep 17 00:00:00 2001 From: magicpanda0618 Date: Wed, 9 Aug 2017 15:43:27 +0800 Subject: [PATCH] perf: use StringBuffer in Java HTTP API by chenjiaqi --- api/http/java/src/jgsc/GstoreConnector.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/api/http/java/src/jgsc/GstoreConnector.java b/api/http/java/src/jgsc/GstoreConnector.java index 2c65d15..d0cd457 100644 --- a/api/http/java/src/jgsc/GstoreConnector.java +++ b/api/http/java/src/jgsc/GstoreConnector.java @@ -2,6 +2,7 @@ package jgsc; import java.io.*; import java.net.*; +import java.lang.*; import java.net.URLEncoder; import java.net.URLDecoder; import java.io.UnsupportedEncodingException; @@ -37,7 +38,7 @@ public class GstoreConnector { //this may help to reduce the GC cost public String sendGet(String param) { String url = "http://" + this.serverIP + ":" + this.serverPort; - String result = ""; + StringBuffer result = new StringBuffer(); BufferedReader in = null; System.out.println("parameter: "+param); @@ -50,7 +51,7 @@ public class GstoreConnector { try { String urlNameString = url + "/" + param; - System.out.println("request: "+urlNameString); + System.out.println("request: "+urlNameString); URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); @@ -82,7 +83,7 @@ public class GstoreConnector { while ((line = in.readLine()) != null) { //PERFORMANCE: this can be very costly if result is very large, because many temporary Strings are produced //In this case, just print the line directly will be much faster - result += line; + result.append(line); //System.out.println("get data size: " + line.length()); //System.out.println(line); } @@ -103,7 +104,7 @@ public class GstoreConnector { e2.printStackTrace(); } } - return result; + return result.toString(); } //NOTICE: no need to connect now, HTTP connection is kept by default