로그인

이메일
비밀번호
왼쪽에 걸리적 거리는 거 숨기기

'메모리릭'에 해당되는 글 1건

  1. 파이어폭스3 에서 eval 을 쓸 때의 메모리 사용량 증가 (4)

    2008/10/14

일반적으로 JSON 스트링을 객체로 바꿀 때는 eval 을 사용합니다.
이를 테면 아래 처럼요.

(Language : javascript)
  1. var json = '{ hello : "world", foo : [ 1, 2, 3 ]}';
  2. var obj = eval('(' + json + ')');


그런데 오늘 회사동료가 저런식으로 반복해서 썼을때 파이어폭스3 에서 메모리 사용량이 치솟는 다고 하네요. 그래서 테스트로 한시간 정도 돌렸더니 마구 올라서 막 메모리를 몇 백메가씩 먹더군요-_-;

뭔가 파이어폭스3 의 버그인 것 같긴 한데 사용하는 입장에서 어찌 할 도리도 없고, 뭔가 회피 할 수 있는 방법이 없을까 이것저것 해보다가 아래처럼 했더니 (왜인지는 모르겠지만) 확실한 개선을 보여주었습니다.

(Language : javascript)
  1. function evalEx(sStr) {
  2.   return (new Function('', 'return ' + sStr + ';'))();
  3. }
  4.  
  5. var json = '{ hello : "world", foo : [ 1, 2, 3 ]}';
  6. var obj = evalEx(json);


문제도 해결하고 eval 쓸때 앞 뒤에 (, ) 도 안 붙혀줘도 되고, 괜찮은듯?

영양가 있는 포스팅인가요
(총 2분이 투표해서 5.0점) 5.0점
2008/10/14 14:56 2008/10/14 14:56