2013-03-11 4 views
13

Bitmap klasa has metoda copy() z poniższej Podpis:Czy niezmienna bitmapa jest szybsza niż zmienna?

public Bitmap copy(Bitmap.Config config, boolean isMutable) 

Czy istnieje różnica wydajności pomiędzy zmienne i niezmienne Bitmap?

+2

byłbym zaskoczony, jeśli istnieje znacząca różnica. –

+0

Byłbym również zaskoczony, ale oprócz hartowania kodu nie mogę sobie wyobrazić funkcjonalnego powodu, aby wybrać jeden nad drugim. To powiedziawszy, ponieważ utrudni to kod, lepiej byłoby uczynić go niezmiennym. Wszelkie zyski wydajności, które uzyskasz, zostaną uzyskane, ponieważ masz wiedzę, której obraz nigdy się nie zmieni. – DeeV

+4

Powodem niezmiennej bitmapy jest to, że oszczędzają zasoby (podczas kopiowania niezmiennej mapy bitowej na inną niezmienną, wskaźnik C nadal wskazuje tę samą lokalizację, więc nie ma potrzeby posiadania prawdziwej kopii). Cała reszta pozostaje jednak taka sama, na twoje pytanie, nie ma żadnej zmiany wydajności, ale jeśli zależy ci na zasobach systemowych, powinieneś używać niezmiennych bitmap kiedy tylko to możliwe. Pamiętam, jak Romain Guy pisał o tym, ale nie mogę go znaleźć. – EyalBellisha

Odpowiedz

6

Romain Guy odpowiedzi w komentarzach:

Aby odpowiedzieć na oryginalne pytanie: nie, nie ma wydajność różnica. Istnieje kilka optymalizacji, które moglibyśmy zastosować do mapowania bitmap . Mam nadzieję, że w przyszłym wydaniu :)

-3

Na poziomie aplikacji, zawsze istnieje różnica między niezmiennymi & modyfikowalnych zasobów bitmapy.

zawsze uzyskać niezmienny bitmapę z zasobów. musisz przekonwertować je na zmienną bitmapę, jak na necessiti.

bitmapy bitmapy = BitmapFactory.decodeResource (....); Bitmap mutableBitmap = immutableBitmap.copy (Bitmap.Config.ARGB_8888, true);

Prawdopodobnie w związku z tym musi występować problem z wydajnością.

+2

Dwa downvotes i komentarzy? Naprawdę? Jako użytkownik nie mam pojęcia, czy odpowiedź jest fałszywa, po prostu myląca z wyborcą, czy z jakąś trzecią opcją. –

+0

Odpowiedź jest błędna. –

+0

zła odpowiedź ... proszę wiedzieć przed udzieleniem pomocy. –

0

Nie ma różnicy w wydajności. Nie wpłynie to na wydajność Twojej aplikacji. Jeśli chcesz wykonać dowolną opration takiego obrotu itp to myślę, że bitmapy powinny być zmienny ...