2009-09-19 22 views
10

Gdzie mogę znaleźć dokumentację na temat maksymalnej liczby wątków dozwolonych w aplikacji na iPhone'a i jakie są twoje doświadczenia z wydajnością wątków?Maksymalny limit nici?

Dziękujemy!

Odpowiedz

23

This page on the Mac Dev Center daje wątku alokacja kosztów, które można dokonać szacunkowej przypuszczenie od:

jądra 1kB koszt
1mb przestrzeni stosu na iPhone
czasu Creation 90 mikrosekund

Przewodnik sugeruje, że poprosisz OS o przydzielenie twojej aplikacji 50mb z 128 MB pamięci RAM, jeśli spawnujesz 50 wątków:

Przestrzeń dla tej pamięci jest uchylenie w przestrzeni procesowej na gwint momencie tworzenia, ale rzeczywiste strony związane z tej pamięci nie są stworzony do momentu ich użycia

to wydaje się duża kwota - i this blog post szczegółowo wyjaśnia, że ​​jeśli próbujesz użyć ponad 46 MB pamięci RAM, twoja aplikacja zostanie zablokowana, a następnie zostanie zabity 5-10 sekund później przez system operacyjny.

Tak naprawdę 15-20 wątków jest bezpieczną wartością, do której należy się przyłączyć, ale oczywiście zależy to od tego, ile pamięci zużywa każdy wątek w operacjach, które wykonuje, a także jak szybko wątek się kończy. Pamięć zostaje zwolniona po zakończeniu wątku.

+0

Bardzo ładne szczegóły - dziękuję! –

+0

To powinien być znak "mikro", a nie "m". to nie 90 MILLIseconds, aby rozpocząć wątek! – Adam

+0

Naprawiono to od MS do mikrosekund –

3

Obawiam się, że nie mogę wskazać żadnej odpowiedniej dokumentacji. Ale musisz pamiętać, że iPhone jest urządzeniem ograniczonym zasobami, więc prawdopodobnie chcesz zachować ostrożność przy spawaniu nowych wątków. Próbowałbym samemu nie przejść przez garść nitek. Mimo to chciałbym usłyszeć, jaki jest faktyczny limit.

+0

Dzięki za komentarze. Jeśli znajdę jakieś solidne rekomendacje z wiarygodnego źródła poza Stack Overflow (Apple?), Postaram się to opublikować. –

1

Oto moje doświadczenie: Moja aplikacja stworzona 40 jednoczesnych nsoperations, nawiasem mówiąc maksymalne bajtów na żywo była zaledwie o 8 MB w czasie wykonywania ... Myślę, że to naprawdę zależy od tego, jak skuteczne Państwo realizować swoje wątki i ile zużywają pamięć podczas wykonywania i realizują złożoność swoich zadań ... Używaj instrumentów do monitorowania alokacji i wydajności aplikacji.

Powiązane problemy