2013-05-15 6 views
33

Czy aplikacja pojedynczego wątku używa całego 4-rdzeniowego w czterordzeniowym telefonie. Przeszukałem to dużo i znalazłem kilka artykułów, które mówią "tak", a niektóre "nie". niektóre artykuły mówią nawet, że system operacyjny Android nie korzysta z 4 rdzeni.czy aplikacja z jednym wątkiem wykorzystuje wiele rdzeni w systemie Android?

Czy Android jest w stanie używać wszystkich 4 rdzeni w procesorze czterordzeniowym?

Czy aplikacja z jednym nici korzysta z wielu rdzeni?

+24

Bill Gates zadał pytanie i Steve Jobs edytowany tego :) Sir Dennis Ritchie odpowie na to :) –

+1

nie mogę zobaczyć Linus Torvalds w pobliżu. –

+1

Chociaż niekoniecznie jest to istotne, pytanie jest nieco błędne: wszystkie aplikacje na Androida muszą mieć wiele wątków. Nawet w trywialnym przypadku, w którym początkujący programista może zrobić coś bez świadomości wątków, wciąż istnieje wiele wątków stworzonych podczas ustawiania procesu aplikacji, a ostatecznie są one wykorzystywane. –

Odpowiedz

18

Odpowiedź brzmi: TAK.

Android jest w zasadzie zbudowany na jądrze Linuksa, które ma wykorzystywać mulit-core. Jeśli chodzi o aplikację jednowątkową, pamiętaj, że wątek nie może być wykonywany w częściach na różnych rdzeniach jednocześnie. Więc chociaż twój pojedynczy wątek może być wykonywany przez różne rdzenie w różnych momentach czasu, to nie może być podzielony i wykonywany przez różne rdzenie w tym samym czasie.

Powiedziawszy to, należy pamiętać, że producenci chipsetów, tacy jak Qualcomm, opracowują inteligentne procesory, zdolne do dzielenia kodu jednowątkowych aplikacji (tylko wtedy, gdy występują wzajemnie wykluczające się części) na wiele wątków i mają je uruchomione różne rdzenie. Tutaj także podstawowa zasada pozostaje taka sama - w celu wykorzystania wielordzeniowego, pojedynczy wątek został podzielony na wiele wątków.

Aby uzyskać jak najwięcej z układu wielordzeniowego, wolałbyś stworzyć wielowątkową aplikację z możliwie największymi asynchronicznymi wątkami, aby optymalnie wykorzystać maksymalną liczbę rdzeni. Mam nadzieję, że to zniknie.

EDIT:

To przekłada się również do - aplikację, która nie korzysta z wielu wątków asynchronicznych (lub jakiegokolwiek innego równoległości konstruktu) nie używać więcej niż jeden rdzeń.

+1

Nie odpowiedziałeś na pytanie. Aplikacja, która nie korzysta z wielu wątków (ani żadnego innego konstruktora, który pozwala na równoległość) NIE użyje więcej niż jednego rdzenia. – Wes

+0

Cześć Wes, uważam, że przytoczyłem tę kwestię w ostatnim paragrafie mojej odpowiedzi. Gdyby tylko wymagało to frazowania w parach, zrobiłem to teraz. Dzięki! – Gagan

+0

-1 Mylisz się. Obciążenia z pojedynczym gwintem nie wykorzystują więcej niż jednego rdzenia. Przeglądarki internetowe należą do tej kategorii, co oznacza jeden rdzeń na kartę, maks. Odpowiedź brzmi NIE. –

10

Na urządzeniu mobilnym z procesorem czterordzeniowym system operacyjny może dynamicznie przydzielać obciążenia do odpowiedniego rdzenia procesora na podstawie bieżących obciążeń procesora i priorytetu zadania/aktywności. Na przykład, jeśli dwa rdzenie procesora są zajęte przetwarzaniem długich zadań, takich jak aktualizacje aplikacji na Androida, kompilacja plików i przetwarzanie multimediów, system operacyjny może od razu przydzielić opóźnienie czułych zadań, takich jak wejścia dotykowe, do dostępnego trzeciego lub czwartego rdzenia, aby zapewnić szybszą reakcję na odpowiedź . . W przypadku jednoczesnego wykonywania wielu zadań kolejkowane żądanie o numerze z tych zadań można szybciej przetworzyć, gdy istnieje wiele rdzeni dostępnych do obsługi tych żądań.

System operacyjny Android ewoluował z systemu Linux, a zatem ma natywną obsługę wielozadaniowości i wielowątkowości . Niedawne wydania Androida 2.3 i Androida 3.0/3.1/3.2 dodały kilka funkcji poprawiających zdolność systemu operacyjnego do wykorzystywania mocy obliczeniowej wielordzeniowych procesorów. Przeglądarki mobilne, takie jak Firefox i Webkit, oparte są na swoich odpowiednikach komputerowych i dlatego zawierają wsparcie dla wielowątkowości. Nowa przeglądarka zawarta w systemie Android 3.0 obsługuje nie tylko wielowątkowość, ale także przeglądanie w kartach. Te przeglądarki mogą wykorzystać zwiększoną moc przetwarzania oferowaną przez wielordzeniowe procesory, aby zapewnić szybsze i lepsze przeglądanie Internetu.

Poniższe zdjęcia opisze więcej:

Ten rysunek przedstawia wykorzystanie każdego rdzenia czterordzeniowy układ CPU podczas przeglądania Popular New York Times WWW. Z rysunku widać, że przeglądarka wykorzystuje wszystkie cztery rdzenie czterordzeniowego procesora, a to równoległe przetwarzanie skutkuje przeglądaniem Internetu, które jest znacznie szybsze niż 6 na dwurdzeniowym urządzeniu mobilnym opartym na CPU. Czterordzeniowy procesor zapewnia również wyższą wydajność przeglądarkom obsługującym przeglądanie w kartach.

CPU Utilization

poniższy rysunek pokazuje obciążenie procesora w czterech rdzeni procesora, gdy wiele kart są otwierane w przeglądarce internetowej. W rzeczywistości przeglądanie w kartach wykorzystuje znaczne przetwarzanie procesora i jak widać na rysunku, może nawet nasycić wszystkie cztery rdzenie czterordzeniowego procesora.

Tabbed Browsing

Powód Android OS powinien wykorzystać wszystkie rdzenie: (jak jestem Android Developer Więc powód jest związany z systemem Android Developer punktu widzenia)

Ze względu na szybki rozwój gier mobilnych, programiści przenoszą do środowiska mobilnego popularne silniki gier komputerowych i konsolowych o nazwie . Te silniki gier zostały pierwotnie opracowane pod kątem wielordzeniowych platform komputerów stacjonarnych, a zatem będą wykorzystywać wielordzeniowe procesory w mobilnych procesorach , aby zapewnić natychmiastowe korzyści dla mobilnych graczy. Czterordzeniowe procesory zapewniają znaczną moc obliczeniową dla twórców gier i umożliwiają programistom zawieranie zaawansowanych efektów fizyki, sztucznej inteligencji, wykrywania kolizji/unikania, wirtualnego teksturowania, lepszej gry sieciowej i innych. Czterordzeniowe procesory i zmienna technologia SMP umożliwią urządzeniom mobilnym dalsze zwiększanie wydajności i pozwalają programistom aplikacji i gier dostarczać nowe wrażenia mobilne, a jednocześnie wydłużać żywotność baterii w najpopularniejszych przypadkach.

Wraz ze wzrostem złożoności i wizualnego bogactwa gier mobilnych wzrastają również rozmiary plików do pobrania. Często rozmiar pliku gry jest tak duży, że czas potrzebny na pobranie gry przekracza piętnastominutowy czas zwrotu po zakupie, aby użytkownicy mogli otrzymać zwrot pieniędzy, jeśli nie podoba im się gra. Nie tylko powoduje to frustrację kupujących, ale także demotywuje kupujących, którzy kupują zaawansowane gry wymagające dużych plików do pobrania.

Techniki generowania dynamicznych tekstur w czasie rzeczywistym pozwalają twórcom gier na tworzenie gier tak, aby tekstury wymagane w grze były tworzone w czasie rzeczywistym na podstawie narracji i stanu gry. Ponieważ tekstury są generowane w locie, nie muszą być dostarczane w momencie zakupu. Dzięki tej technice twórcy gier mogą zmniejszać rozmiary plików gier o kilka rzędów wielkości. Spójrz na następujące odmiany scen w grach z 4 rdzennymi procesorami.

Game Scene Variation

7

Tak. Android 3.0 to pierwsza wersja platformy zaprojektowanej do uruchamiania na architekturach jedno lub wielordzeniowych procesorów.

Nawet aplikacja jednowątkowa może korzystać z przetwarzania równoległego na różnych rdzeniach.

Na przykład , jeśli aplikacja korzysta z serwera multimediów, przetwarzanie multimediów i logika aplikacji renderowania interfejsu użytkownika mogą być uruchamiane na różnych rdzeniach w tym samym czasie. Ponadto, garbage collector może działać na innym rdzeniu.

Sprawdź na link poniżej więcej szczegółów

https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-1-2.

https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-2-2.

Wypowiedz swoją grafikę. Aby renderować to samo, Twoja aplikacja może korzystać z wielu rdzeni. Możesz sprawdzić to samo pod linkiem poniżej.

https://youtu.be/vQZFaec9NpA?t=459 (grafika i wydajność)

http://android-developers.blogspot.in/2010/07/multithreading-for-performance.html

Sprawdź to pdf. Przewiń w dół, aby przesunąć 22. Może być przydatna

http://elinux.org/images/1/11/Application-Parallelization-Android-KlaasVanGend.pdf