admin write
blogblogblogbloglocation loglocation logtag listtag listguest bookguest book
rss feed

Flex를 이용 약 100여개의 차트가 한화면에 떠서 거의 무제한으로 실시간 감시가 되어야하는

프로젝트를 진행중인데 가장 문제는 GC의 해제가 잘안되는것과 소스의 덩치로 인한 메모리

점유문제였다. 코딩만으로는 한계가 있고 아무리 release 를 잘하고 최적화를 해도

사람이 하는건데 빈틈도 많은.. ㅠ

Flex의 GC 로인한 문제를 2중 어플리케이션 구조와 IFrame을 이용하여

거의 완벽(?)에 가깝게 해결을 보았는데 IE9 가 태클을 ㅠ

문제는 Flex에서 flash.system.System.totalMemory 를 체크하여 특정 점유량 이상일때

하위 어플리케이션이 새로고침되도록 해서 거의 무식하게 GC가 아닌 아예 Flash player 자체를

새로고침하는 방법을 고안하여 사용하였는데

IE6, 7, 8 에서는 잘되지만 IE9만 유독문제를 일으킨다 ㅠ

문제는 IE9의 자체 캐쉬기능때문인건지 원인파악은 안되지만 구글링해보았을때

IE9의 메모리점유율 문제가 상당히 마니 검색되어 나오는걸로 봐서 자체버그인듯한..

IE9는 특정 페이지 접속시 상당히 기본 메모리 점유량이 큰데 아래 스크린샷과 같다


같은 페이지를 띄우고 확인하는데도 불구하고 IE6에서는 111메가 가량..

IE9에서는 171메가나 된다.. 더웃긴것은 새로고침을 하여도 도메인이 바뀌지 않으면

HTML에서 메타를 이용한 no-cache 등의 설정도 거의 무용지물..

캐쉬설정을 다 꺼보아도 preloader를 타지 않는다 ㅠ 아.. 미치겠...

저 망할 171메가는 늘어나면 늘어나지 아무리 F5를 연타를 하여도 줄어들진 않는다 ㅠ 뭐이런...

IE9 이하 다른 버젼에서는 아주 잘되는데.. 새로고침시 정말 아주 무식하게 메모리 점유율이

떨어지는것이 눈으로 확인이 된다.

막 나온 IE9 버젼은 되도록이면 사용하지 않는게.. 확실히 과거버젼에 비해 안전성을 좋아진듯하지만

몇몇 금융사이트에서는 아예 윈도우7의 블루스크린을 보여주는등

믿음이 썩 가지는 않는다 ㅠ





※ 20111015 추가 

현재 IE9 에서 프래쉬의 embed 시 url 뒤에 GET방식으로 timestamp 등을 파라메터로 넣어

Cache 가 되지 않도록 하여 보완할수 있습니다.