Liczba klatek na sekundę w aplikacji

W ogólnym przypadku w celu osiągnięcia lepszej wydajności należy stosować najniższą możliwą liczbę klatek na sekundę.

Liczba klatek na sekundę w aplikacji określa ilość czasu dostępnego dla każdego „cyklu kodu aplikacji i renderowania”, co zostało opisane w sekcji Fundamentalne zagadnienia wykonywania kodu w środowisku wykonawczym . Większa liczba klatek na sekundę tworzy płynniejszą animację. Jeśli jednak nie występują żadne animacje ani zmiany graficzne, często nie ma potrzeby stosowania dużej szybkości odtwarzania. Wyższa szybkość odtwarzania powoduje używanie większej liczby cykli procesora i zużycie dodatkowej energii z akumulatora w porównaniu do niskiej szybkości odtwarzania.

Poniżej przedstawiono ogólne wytyczne dotyczące domyślnej liczby klatek na sekundę dla aplikacji:

  • Jeśli używane jest środowisko Flex, należy pozostawić początkową liczbę klatek na sekundę jako wartość domyślną.

  • Jeśli aplikacja zawiera animację, wówczas odpowiednia liczba klatek na sekundę wynosi co najmniej 20 klatek na sekundę. Wartości wyższe niż 30 klatek na sekundę zwykle są zbędne.

  • Jeśli aplikacja nie zawiera animacji, wówczas wystarczająca liczba klatek będzie prawdopodobnie wynosić 12.

„Najniższa możliwa liczba klatek na sekundę” może się różnić w zależności od bieżącego działania aplikacji. Więcej informacji zawiera następna wskazówka „Dynamiczna zmiana liczby klatek na sekundę w aplikacji”.

Jeśli wideo jest jedyną dynamiczną treścią w aplikacji, również należy stosować niską liczbę klatek na sekundę.

Środowisko wykonawcze odtwarza treść wideo zgodnie z własną liczbą klatek na sekundę bez względu na liczbę klatek aplikacji. Jeśli aplikacja nie zawiera żadnej animacji ani innej szybko zmieniającej się treści wizualnej, wówczas zastosowanie niskiej liczby klatek na sekundę nie zmniejszy zadowolenia użytkownika.

Dynamiczna zmiana liczby klatek na sekundę w aplikacji.

Programista definiuje początkową liczbę klatek na sekundę w ustawieniach projektu lub kompilatora, ale ta wartość nie jest stała dla tej liczby. Liczbę klatek na sekundę można zmienić, ustawiając właściwość Stage.frameRate (lub właściwość WindowedApplication.frameRate w środowisku Flex).

Liczbę klatek na sekundę należy zmieniać odpowiednio do bieżących potrzeb aplikacji. Na przykład: gdy aplikacja nie wykonuje żadnej animacji, liczbę klatek na sekundę należy zmniejszyć. Przed rozpoczęciem animowanego przejścia należy zwiększyć liczbę klatek na sekundę. Analogicznie, jeśli aplikacja użytkownika jest uruchomiona w tle (po utracie aktywości), można zwykle zmniejszyć liczbę klatek na sekundę. Użytkownik prawdopodobnie pracuje na innej aplikacji lub zadaniu.

Poniżej przedstawiono ogólne wytyczne, które mogą być traktowane jako punkt odniesienia przy określaniu odpowiedniej liczby klatek na sekundę dla różnych typów operacji:

  • Jeśli używane jest środowisko Flex, należy pozostawić początkową liczbę klatek na sekundę jako wartość domyślną.

  • Podczas odtwarzania animacji liczbę klatek na sekundę należy ustawić na co najmniej 20. Wartości wyższe niż 30 klatek na sekundę zwykle są zbędne.

  • Gdy żadna animacja nie jest odtwarzana, wówczas liczba klatek równa 12 będzie prawdopodobnie wystarczająca.

  • Załadowane wideo jest odtwarzane z rodzimą liczbą klatek na sekundę bez względu na liczbę klatek w aplikacji. Jeśli wideo jest jedyną poruszającą się treścią w aplikacji, wówczas 12 klatek na sekundę będzie prawdopodobnie liczbą wystarczającą.

  • Jeśli aplikacja nie zawiera punktu skupienia służącego do wstawiania, wówczas prawdopodobnie wystarczającą liczbą będzie 5 klatek na sekundę.

  • Jeśli aplikacja AIR nie jest widoczna, liczba klatek na sekundę o wartości 2 lub mniejsza jest prawdopodobnie właściwa. Ta wskazówka powinna być brana pod uwagę na przykład wtedy, gdy aplikacja jest zminimalizowana. Dotyczy również komputerów stacjonarnych, na których właściwość visible okna macierzystego ma wartość false .

W aplikacjach utworzonych w środowisku Flex klasa spark.components. WindowedApplication udostępnia wbudowane funkcje obsługi przeznaczone do dynamicznej zmiany liczby klatek na sekundę w aplikacji. Właściwość backgroundFrameRate definiuje liczbę klatek na sekundę aplikacji, gdy aplikacja nie jest aktywna. Wartość domyślna wynosi 1, co powoduje zmianę liczby klatek na sekundę aplikacji utworzonej za pomocą środowiska Spark na 1 klatkę na sekundę. Liczbę klatek na sekundę dla tła można zmienić, ustawiając właściwość backgroundFrameRate . Właściwości można przypisać inną wartość, w szczególności wartość -1, aby wyłączyć automatyczne sterowanie liczbą klatek na sekundę.

Więcej informacji na temat dynamicznego zmieniania liczbę klatek na sekundę w aplikacji zawierają następujące artykuły:

Grant Skinner opracował klasę sterującą liczbą klatek na sekundę. Ta klasa może służyć w aplikacjach do automatycznego zmniejszania liczby klatek na sekundę, gdy aplikacja zostanie przesunięta do tła. Na stronie http://gskinner.com/blog/archives/2009/05/idle_cpu_usage.html jest dostępny artykuł Granta Skinnera „Używanie bezczynnego procesora w środowisku Adobe AIR i programie Flash Player”. Zawiera on dodatkowe informacje oraz pozwala pobrać kod źródłowy dotyczący klasy FramerateThrottler.