Udostępnij za pośrednictwem


Zwiększanie wydajności w aplikacjach Visual FoxPro

Ten artykuł zawiera sugestie dotyczące ulepszania i rozwiązywania problemów z wydajnością aplikacji niestandardowych napisanych w programie Visual FoxPro 8.0 lub 9.0.

Oryginalna wersja produktu: Visual FoxPro
Oryginalny numer KB: 2671338

Symptomy

Masz aplikację niestandardową napisaną w programie Visual FoxPro 8.0 lub 9.0. Użytkownicy zgłaszają wydajność, która nie spełnia oczekiwań. Celem tego artykułu jest oferowanie sugestii dotyczących poprawy wydajności i niektórych narzędzi, których deweloper może użyć do identyfikowania obszarów kodu, które przyczyniają się do wąskich gardeł wydajności.

Przyczyna

Główne przyczyny niskiej wydajności aplikacji są wiele i zróżnicowane. Obejmują one, ale nie ograniczają się do następujących:

  • Użycie i konfiguracja pamięci programu Visual FoxPro
  • Projektowanie oprogramowania (nieefektywny kod)
  • Konfiguracja oprogramowania antywirusowego
  • Wydajność sieci lokalnej
  • Wydajność sieci rozległej

Rozwiązanie

Często rozwiązywanie problemów z wydajnością w dowolnej aplikacji najlepiej wykonać przy użyciu całościowego podejścia. Oznacza to dokładne zbadanie wszystkich czynników, które potencjalnie wpływają na wydajność. Te problemy obejmują aplikację, system operacyjny, oprogramowanie uruchamiane współbieżnie w środowisku za pomocą pliku wykonywalnego FoxPro i sieć.

Struktura rozwiązywania problemów proponowana w tym artykule rozpoczyna się od aplikacji. Przyjrzymy się różnym czynnikom dotyczącym ustawiania i projektowania, które wpływają na wydajność. Następnie przyjrzymy się oprogramowaniu uruchomionego na maszynach (zarówno na serwerze, jak i na lokalnej stacji roboczej), a na koniec sprawdzimy sieć.

Więcej informacji

Aby skutecznie rozwiązywać problemy z niską wydajnością aplikacji niestandardowej Visual FoxPro, należy zapoznać się ze środowiskiem systemu operacyjnego i kodem źródłowym aplikacji niestandardowej. Jeśli dostawca innej firmy utworzył aplikację FoxPro, skontaktuj się z nimi w celu uzyskania pomocy technicznej. Mają one wymaganą wiedzę na temat kodu źródłowego, co może być niezbędne do rozwiązania problemu z wydajnością

Użycie i konfiguracja pamięci programu Visual FoxPro

Często można poprawić wydajność kodu FoxPro, dodając co najmniej jedno z następujących poleceń na początku (w głównym programie) aplikacji:

SET REFRESH TO 0,0

SET TABLEVALIDATE TO 2

SET DELETED OFF

SYS(3054) function

Temp files directed locally

Należy przetestować wszelkie zmiany indywidualnie, aby najlepiej ocenić ich wpływ na wydajność.

Projektowanie oprogramowania (nieefektywny kod)

Kod aplikacji nieoptymalizowany poważnie utrudnia wydajność aplikacji. Jednak nieefektywny kod nie zawsze jest oczywisty. Na szczęście programy Visual FoxPro 8.0 i 9.0 mają narzędzie Coverage Profiler, które umożliwiają uruchamianie kodu i wyświetlanie czasu potrzebnego do wykonania każdego wiersza. Profiler pokrycia jest dostępny w środowisku programistycznym, zarówno w VFP 8.0, jak i 9.0, oraz jako skompilowany plik wykonywalny w VFP 9.0.

Projektowanie kodu często wysuwa się na pierwszy plan jako czynnik utrudniający wydajność, jeśli masz starszy (kod proceduralny FoxPro 2.x), który działa w ramach środowiska VFP. Na przykład można użyć polecenia LOCATE zamiast funkcji SEEK lub SEEK(). Ponieważ polecenia LOCATE odczytują każdy rekord tabeli, będzie ona naturalnie wolniejsza w prawie wszystkich okolicznościach. Narzędzie do analizy pokrycia pomaga zidentyfikować takie wąskie gardła.

Innym typowym obszarem związanym z kodem w przypadku problemu z wydajnością jest nieoptymalizowane polecenia SELECT-SQL. Profiler pokrycia może ponownie określić, czy polecenie SELECT-SQL zajmuje nadmierną ilość czasu. Nie informuje jednak, jak zoptymalizować zapytanie. Celem jest upewnienie się, że polecenia SELECT-SQL używają Rushmore optymalizacji w jak największym stopniu.

Aby uzyskać więcej informacji, zobacz następujące artykuły i link MSDN:

Konfiguracja oprogramowania antywirusowego

Oprogramowanie antywirusowe może znacząco wpłynąć na wydajność aplikacji VFP. Chociaż nikt nie kwestionuje potrzeby oprogramowania antywirusowego, jeśli oprogramowanie skanuje pliki danych VFP, wydajność może cierpieć. Chociaż nie jesteśmy ekspertami w zakresie wszystkich możliwych ustawień konfiguracji oprogramowania antywirusowego, możemy udostępnić pewne ogólne sugestie:

  • Wyłącz automatyczne skanowanie.
  • Zapobiegaj skanowaniu przez program antywirusowy plików danych VFP.
  • Upewnij się, że masz najnowszą kompilację oprogramowania antywirusowego.

Wydajność sieci lokalnej

Powolna sieć lokalna (LAN) może spowodować niską wydajność aplikacji. W programie VFP nie ma funkcji ani narzędzia umożliwiającego monitorowanie wydajności sieci. Istnieją kroki rozwiązywania problemów, które usuwają wydajność sieci LAN ze środowiska, co pozwala na testowanie tylko wydajności aplikacji. Najpierw można uruchomić aplikację z maszyny serwera terminali. Aplikacja działa w miejscach pamięci maszyny serwera terminali (a nie systemu operacyjnego klienta) i tylko obraz ekranu wymaga przesyłania przez sieć LAN. Po drugie można również uruchomić aplikację lokalnie i wyeliminować sieć. (Ta opcja działa, jeśli tylko jeden klient ma niską wydajność).

Problem z siecią może być złożony i często obejmuje sprzęt (routery, przełączniki, karty sieciowe), ustawienia (Oplocks, network transmission rates) i oprogramowanie (wersje systemu operacyjnego, maszyny wirtualne). Często problemy związane z siecią wymagają zaangażowania zespołu platform, aby przeprowadzić analizę śladów netmon oraz uruchomić inne narzędzia diagnostyczne systemu operacyjnego.

Wydajność sieci rozległej

Sieci rozległe zwykle obejmują znacznie większy obszar geograficzny i sieć LAN. Sieć LAN może łączyć lokację, w której sieć WAN może łączyć lokacje w dwóch stanach lub krajach. Wraz ze wzrostem odległości pojawia się więcej potencjalnych wąskich gardeł w wydajności aplikacji. Te same problemy z sugestią fotografowania dla sieci LAN dotyczą sieci WAN (test aplikacji na serwerze terminali lub lokalnie, jeśli to możliwe). Konieczne może być również konsultacje z zespołami platform lub specjalistami ds. sprzętu.