Menu / szukaj

Przyspieszenie startu aplikacji na WP7

Wśród wymagań certyfikacyjnych można znaleźć kilka dotyczących wydajności uruchamiającej się aplikacji. Dwa najważniejsze to:

  • aplikacja powinna wyświetlić pierwszy ekran w czasie nie dłuższym niż 5 sekund. Ekranem tym może być splash screen,
  • nie później niż 20 sekund po uruchomieniu, aplikacja powinna reagować na działania użytkownika.

Można się zastanawiać, czy to jest dużo. Moim zdaniem bardzo trudno jest przekroczyć te dwa ograniczenia. Z drugiej jednak strony, patrząc na aplikację z punktu widzenia użytkownika, czekanie 20 sekund na uruchomienie się aplikacji jest strasznie irytujące. Należy pamiętać, że po kolejnych 10 sekundach może uruchomić się wygaszacz ekranu na telefonie. Z tego powodu proponuję zastanowić się nad możliwościami przyśpieszenia startu aplikacji.

Zakładam, że takie rzeczy jak:

  • uruchamianie długich operacji w innym wątku niż wątek UI,
  • powiadamianie użytkownika o statusie operacji trwających dłużej

są oczywiste i nie wymagają wytłumaczenia.

Czytaj dalej

Lock-free thread synchronization wg Richtera

15 sierpnia 2012 odbędzie się darmowy webcast prowadzony przez Jeffreya Richteram. W trakcie prezentacji o tytule „Lock-Free Thread Synchronization” Jeffrey Richter będzie demonstrował kwestie związane ze współdzieleniem danych pomiędzy wątkami. Aby móc uczestniczyć w prezentacji należy wcześniej zarejestrować się na stronie organizatora. Tam też można znaleźć dodatkowe informacje dotyczące tego wydarzenia.

Parallel.For – wielowątkowość nigdy nie była tak łatwa

W ostatniej wersji C# pojawiła się możliwość zrównoleglenia obliczeń w bardzo prosty sposób. Pętlę:

for (int n = 0; n <  8; n++)
{
   Console.WriteLine("Normal - iteracja {0} wątek {1}", n,
     Thread.CurrentThread.ManagedThreadId);
}&#91;/code&#93;
<p style="text-align: justify;">można zastąpić następującą konstrukcją:
Parallel.For(0, 8, i =>
{
   Console.WriteLine("Parallel - iteracja {0} wątek {1}", i,
      Thread.CurrentThread.ManagedThreadId);
});

Czytaj dalej