1. Minifying
프로그램에서 불필요한 주석이나 공백을 삭제합니다. 프로그램의 크기를 반정도 줄이는 게 가능하며 JSMin, ShrinkSafe을 사용하여 줄일 수 있습니다. Minifying을 하기 전에는 JSLint같은 프로그램을 사용하여 ';'의 사용 등을 체크할 필요가 있습니다.
@개인적으로 JSMin으로 실험해봤을 때는 많은 경우 58%까지 줄일 수 있고, 평균 66%정도가 주는 것 같습니다.
@개인적으로 JSMin으로 실험해봤을 때는 많은 경우 58%까지 줄일 수 있고, 평균 66%정도가 주는 것 같습니다.
2. Obfuscating
변수 이름(variable names)이나 함수(function), 등을 모두 다른 변수명으로 바꿔서 프로그램의 크기를 최소화 시키고 또한, 프로그램을 읽기 힘들게 만듭니다. Saltstorm, Memtronic에서 제공됩니다. Memtronic의 경우 js파일을 gzip 형태로 압축도 가능합니다.
3. Gzipping
Http Compression은 Server에서 Client로 html파일이나 JavaScript파일을 전송할 때 gzip으로 압축해서 전송하고, 브라우저에서는 이를 받아서 압축을 푼다음 실행하게 됩니다. [유경상님의 'HTTP 압축 작동 원리' 참고]
IIS에서는 이를 지원하고 있으며, Apache에서도 mod_gzip, mod_deflate을 통해서 지원이 되고 있습니다.
IIS에서는 이를 지원하고 있으며, Apache에서도 mod_gzip, mod_deflate을 통해서 지원이 되고 있습니다.
2. Code 상에서의 Optimization
Ajax Program이 사용되면서 페이지 갱신없이 리로딩하는 방식이 사용되었습니다. 이로인하여 페이지에 할당되어 있는 Object가 GC되지 않아서 메모리 누수가 발생하게 됩니다. 이를 해결하기 위해서는 다음의 방법이 필요합니다.
1. Object에 대해서 사용하지 않는다는 표시를 명확하게 해줘야 한다. (null처리가 들어가야 한다.)
2. 여러 파일들을 하나의 파일로 합침으로서 로딩타임을 최소화 시킬 수 있다.
(Prototype의 경우 여러 클래스 파일들을 하나의 파일로 합쳐서 배포하는 형태를 취하고 있습니다. - 필요 클래스만 묶을 수 있다는 장점이 있는 반면에 config파일을 통해서 묶을 파일을 항상 정해줘야 하는 단점도 있습니다.)
2. 여러 파일들을 하나의 파일로 합침으로서 로딩타임을 최소화 시킬 수 있다.
(Prototype의 경우 여러 클래스 파일들을 하나의 파일로 합쳐서 배포하는 형태를 취하고 있습니다. - 필요 클래스만 묶을 수 있다는 장점이 있는 반면에 config파일을 통해서 묶을 파일을 항상 정해줘야 하는 단점도 있습니다.)
3. WebApp의 Profiling
1. WebApp의 Loading time 측정 - new Date().getTime()을 사용하면 됩니다. /측정시에는 Cache를 삭제함으로서 초기 로딩시간에 대한 측정이 되어야 합니다. /이 외의 Profiling에서도 기준이 되는 것은 time과 관련하여 측정할 수 있습니다.
2. Dojo의 profile kit을 사용하는 방법
3. Server단 에서의 메모리 측정
2. Dojo의 profile kit을 사용하는 방법
3. Server단 에서의 메모리 측정
출처:
유경상님의 Http Compression
OSCON 2006: Ajax Optimization Techniques
Yahoo! user interface blog : Minifycation vs Obfuscation
On the Stre@m: Biggest AJAX Problem
참고:OSCON 2006: Ajax Optimization Techniques
Yahoo! user interface blog : Minifycation vs Obfuscation
On the Stre@m: Biggest AJAX Problem
댓글 없음:
댓글 쓰기