string
-
java string concatenation performance카테고리 없음 2007. 3. 10. 14:44
2002년도에 쓰여진 tech tip에서도 비슷한 문제가 제기된 것을 보니 하루 이틀된 문제는 아니고 일반적으로 알려진 문제인 듯하다. 저 예제(첫번째)에서의 결과는 내가 테스트한 것보다 정도가 좀 더 심해서 61890/16 =3,868 배의 차이를 보이고 있다. 350이 아닌 3800이다. 얼핏 생각하기에 이정도의 차이가 나는 것은 좀 심하다는 생각이 들어서 계산을 시작해 보았다. tech tip 에 있는 첫번째 예를 들어 계산을 해 보면 다음과 같다. (내가 테스트한 것의 경우 integer를 string을 바꾸는 작업이 들어가고, 그 길이가 가변적이기 때문에(log10(n)) 계산하기 좀 더 쉬운 tech tip case로....) 매 iteration에서 길이 1만큼의 strng이 추가되므로 1...
-
java String 연산속도카테고리 없음 2007. 3. 8. 19:17
아까 쓴 java, ruby, python 속도비교에서 java의 string concat 을 language에서 제공하는 "S = S1 + S2" 형태를 사용했다가 StringBuffer.append()를 쓰는 것과 상상 이상의 속도차이가 난다는 것을 알게 됬다. 무려 65.695/0.187 = 351.310160428 배.. 350배가 넘는 저 차이는 어디서 오는 것일까.. s = s1 + i 라는 코드가 어떻게 컴파일되는지 뜯어 보니.. temp sb = new StringBuilder(); sb.append(s1); sb.append(i); c = sb.toString(); 이렇게 되고 있었다. (예전에는 StringBuffer를 사용했는데 StringBuilder로 바뀌었군... - String..