1
System.out.println("Input String length : " + str.length());
System.out.println("SWB==="+sw.getTime());
byte[] bytes = Base64.decodeBase64(str);
System.out.println("SWB==="+sw.getTime());
GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(bytes));
BufferedReader bf = new BufferedReader(new InputStreamReader(gis));
String outStr = "";
String line;
while ((line=bf.readLine())!=null) {
outStr += line;
}
System.out.println("SWB==="+sw.getTime());
System.out.println("Output String lenght : " + outStr.length());
위의 코드를 인쇄 왜 GZIPInputStream은 시간이 오래 걸리나요?
SWB===1
SWB===4
SWB===27052
Output String lenght : 1750825
하지만 동일한 문자열의 압축이 아주 짧은 시간 (이 100ms 미만)에 걸린다. 여기서 내가 뭘 잘못하고 있니?
'outStr + = line' 대신'StringBuilder'를 사용해보십시오. – Jack
이 작업이 더 빨라짐을 발견했습니다. http://stackoverflow.com/a/10572491/393639 – dinesh707