2011-03-14 23 views
5

od czasu do czasu nawiedzają mnie "org.eclipse.swt.SWTError: No more uchwyty". Znam już narzędzia takie jak GDIView, aby obejrzeć liczbę przydzielonych uchwytów, ale teraz zastanawiam się, czy istnieje lepszy sposób na zrobienie tego.SWT - Jak debugować "Nigdy więcej uchwytów"

Czy jest dostępne narzędzie? Może taki, który rejestruje wszystkie tory stacktraces po utworzeniu uchwytów? A który pokazuje nowe uchwyty między dwoma punktami wywołania?

Pozdrawiam, Daniel

PS: Dodano znacznik systemu Windows, ponieważ dev occures głównie na okna i tylko okna narzędzie byłoby wystarczająco dobre.

+0

To pytanie może być związane z Twojego zapytania: http://stackoverflow.com/questions/164776/overcoming-windows-user-object-handle-limit – Zoot

+0

@Zoot: On wydaje się działać na objawy, a nie przyczyna. Po prostu szukam prawdziwych wycieków, naprawdę nie potrzebuję wielu uchwytów. Chodzi o to, że z czasem zużyto zbyt wiele zasobów. Korzystając ze słabych stron, mogłem nawet szukać odtworzonych zasobów. Debugowanie tego również sprawia, że ​​moja aplikacja jest szybsza niż RDP. – Daniel

Odpowiedz

3

Dowiedziałem się o Sleak, świetnym narzędziem do debugowania zasobów SWT! Wysoce zalecane dla wszystkich z tymi samymi problemami. Nawet pokazuje obrazy dla zasobów graficznych!

0

Dla mnie problem polegał po prostu na tym, że nowa funkcja Shell() została wywołana zbyt często. Zapisanie powłoki jako statycznego elementu i ponowne użycie pomogło. Dlatego przed zastosowaniem narzędzia takiego jak Sleak, inni mogą chcieć wykonać wyszukiwanie pełnotekstowe "nowej powłoki" i sprawdzić, czy nie mają tej samej prostej przyczyny.