java
-
java, python, ruby threading 효율 비교카테고리 없음 2007. 3. 17. 01:25
지난번 속도 비교는 java의 string연산을 잘못 사용하여 크게 잘못된 결과가 나왔었다. 그 뿐 아니고 integer operation의 경우에도 연산횟수가 너무 적어서 interpreter/vm이 올라오는 시간에 크게 영향을 받아서 거의 의미없는 결과가 나왔던 것임이 확인되었다. 그래서 이번에는 연산의 횟수를 충분히 늘리고 돌려본 결과 java 가 interprete만을 하는 경우에도 약 100배의 성능을 보이는 것으로 나타났다. 그래서 order를 맞추기 위해 java의 경우 100배 더 많은 operation을 해서 threading overhead가 얼마나 되는지를 중점으로 테스트 했다. 즉, ruby/python은 100만번씩 열 세트, java의 경우 1억번씩 열세트.. is case에는 ..
-
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..
-
java, ruby, python 속도 비교..카테고리 없음 2007. 3. 8. 10:12
속도 비교라고는 하지만 단순 integer add연산과 string concat연산을 multi thread 환경에서 얼마나 빨리 해내는가를 비교해 봤다. 어플리케이션을 수행하는데 있어서 가장중요하다는 위의 연산들을 조합하니, 각 언어별로 single thread integer, single thread string, multithread integer, multithread string 의 네가지, 그리고 언어는 java, ruby, python 그리고 java nojit까지 해서 네가지... 총 4*4 = 16가지의 경우가 있었다. integer는 1~10000까지의 덧셈을 열번 string은 "1"~"10000" 까지의 string을 연결 을 각각 10번씩 - single thread에서는 순차적으..
-
google과 apple의 서로 다른 선택카테고리 없음 2007. 1. 16. 19:18
google에서 얼마전에 발표한 라는 GMail for device제품(서비스)이 있다.. mobile phone에서 다운로드 받은 JAVA 어플리케이션으로 GMail을 보내고 받을 수 있게 해 주는 제품(서비스)이다. 반면, Apple의 iPhone에는 Java가 포함되지 않는다고 Jobs 교주님꼐서 친히 말씀하셨다고 한다. 문론 iPhone에서 기본적으로 full browsing이 지원되기 때문에 gmail site에 바로 접속하는것이 가능하기는 하지만, "더이상 아무도 java를 사용하지 않는다"라고 한 독설에 대해서는 책임을 회피할 방법이 없게 되었다. 아마도 기술적인 문제로 사양에서 제거한 것을 합리화 하기 위해 저렇게 얘기한 것으로 보인다. 현재로서는 mobile시장에서 java가 주도를 하게..
-
JavaScript compiler카테고리 없음 2007. 1. 4. 10:08
javascript의 개발환경이 점점 다양해 지고 있었다. 어느사이엔가 javascript는 web 2.0의 assembly가 되어 버렸고.. 많은 언어들의 하부 표현으로 자리잡고 있었다. javascript -> java : rhino - mozilla에서 초기에 사용되었던 java version javascript runtime... 1M가 좀 넘는 runtime이 필요하다. javascript -> java : resin - resin framework의 일부(modules/resin/src/com/caucho/es).. 1M가 좀 넘는 runtime이 필요하다. ruby -> javascript : RJS Template - full ruby 는 아니고, 축약버젼임 java -> javascrip..