http://eclipsesource.com/blogs/2009/04/17/finding-swt-leaks-with-sleak/
Sleak 소개 팁입니다.
01....
02.org.eclipse.swt.SWTError: No more handles
03.at org.eclipse.swt.SWT.error(SWT.java:2966)
04.at org.eclipse.swt.SWT.error(SWT.java:2863)
05.at org.eclipse.swt.SWT.error(SWT.java:2834)
06.at org.eclipse.swt.widgets.Widget.error(Widget.java:395)
07.at org.eclipse.swt.widgets.Control.createHandle(Control.java:482)
08.at org.eclipse.swt.widgets.Composite.createHandle(Composite.java:229)
09.at org.eclipse.swt.widgets.Control.createWidget(Control.java:497)
10.at org.eclipse.swt.widgets.Scrollable.createWidget(Scrollable.java:131)
11.at org.eclipse.swt.widgets.Control. (Control.java:97)
12.at org.eclipse.swt.widgets.Scrollable. (Scrollable.java:72)
13.at org.eclipse.swt.widgets.Composite. (Composite.java:87)
이미지나 폰트등을 사용한 후에는 반드시 dispose를 호출해주어서 리소스스를 시스템에 반납해주어야하는데요.
그러지않고 무한정 생성만했을 경우 위와 같은 상황이 나타납니다. 물런 사용할때는 당연 ImageRegistry, FontRegistry 이것들을 관리해주는 JFaceResource를 사용해서 재사용해야 겠습니다.
이것들을 이용해서 처리해도 너무 많은 자원을 생성해서 가지고 있다면 위와 같은 에러를 만날수도있습니다. 시스템에서 위의 리소스를 만들수있는 한계가 있기때문에 그런 것 입니다.
이 것을 생성할수 있는 한계는 os마다 틀리기때문이지요.
어찌됐든 위와같은에러가 나왔을때 사용하는 도구가 Sleak입니다.
Sleak 홈페이지가도 처음하시는 분들은 감갑자기도 힘들텐데 정리가 잘되어 있네요.
알면 엄청나게 편한것이고, 모르면 몇일 날밤 새는 그런 것이므로 한번쯤은 꼭 봐두면 좋을듯 싶네요.
댓글 없음:
댓글 쓰기