Freigeben über


Verbessern der Leistung in Visual FoxPro-Anwendungen

Dieser Artikel bietet Vorschläge zur Verbesserung und Problembehandlung von Leistungsproblemen mit benutzerdefinierten Anwendungen, die in Visual FoxPro 8.0 oder 9.0 geschrieben wurden.

Originalproduktversion: Visual FoxPro
Ursprüngliche KB-Nummer: 2671338

Symptome

Sie haben eine benutzerdefinierte Anwendung in Visual FoxPro 8.0 oder 9.0 geschrieben. Benutzer melden die Leistung, die ihren Erwartungen nicht entspricht. Ziel dieses Artikels ist es, Vorschläge zur Verbesserung der Leistung zu bieten, und einige Tools, die der Entwickler verwenden kann, um Codebereiche zu identifizieren, die zu Leistungsengpässen beitragen.

Ursache

Die Ursache(n) einer schlechten Anwendungsleistung sind viele und vielfältig. Sie umfassen, aber nicht beschränkt auf Folgendes:

  • Visual FoxPro-Speicherauslastung und -konfiguration
  • Softwaredesign (ineffizienter Code)
  • Antivirensoftwarekonfiguration
  • Leistung des lokalen Netzwerks
  • Leistung des Wide Area Network

Lösung

Häufig wird die Problembehandlung eines Leistungsproblems in jeder Anwendung am besten mithilfe eines ganzheitlichen Ansatzes durchgeführt. Es bedeutet, dass alle Faktoren, die sich potenziell auf die Leistung auswirken, genau untersucht werden. Zu diesen Problemen gehören die Anwendung, das Betriebssystem, die Software, die gleichzeitig in der Umgebung mit der ausführbaren Datei FoxPro und dem Netzwerk ausgeführt wird.

Das in diesem Artikel vorgeschlagene Problembehandlungsframework beginnt mit der Anwendung. Wir betrachten die verschiedenen Faktoren hinsichtlich Einstellung und Design, die sich auf die Leistung auswirken. Anschließend untersuchen wir die Software, die auf den Computern ausgeführt wird (sowohl Server als auch lokale Arbeitsstation), und schließlich prüfen wir das Netzwerk.

Weitere Informationen

Um eine schlechte Leistung einer benutzerdefinierten Visual FoxPro-Anwendung effektiv zu beheben, benötigen Sie einen Überblick über die Betriebssystemumgebung und den Quellcode für die benutzerdefinierte Anwendung. Wenn ein Drittanbieter die FoxPro-Anwendung erstellt hat, wenden Sie sich an den Support. Sie verfügen über das erforderliche Verständnis des Quellcodes, was für die Lösung eines Leistungsproblems von entscheidender Bedeutung sein kann.

Visual FoxPro-Speicherauslastung und -konfiguration

Sie können die Leistung von FoxPro-Code häufig verbessern, indem Sie am Anfang (im Hauptprogramm) ihrer Anwendung einen oder mehrere der folgenden Befehle hinzufügen:

SET REFRESH TO 0,0

SET TABLEVALIDATE TO 2

SET DELETED OFF

SYS(3054) function

Temp files directed locally

Sie sollten alle Änderungen einzeln testen, um ihre Auswirkungen auf die Leistung optimal zu messen.

Softwaredesign (ineffizienter Code)

Nicht optimierte Anwendungscode beeinträchtigt die Anwendungsleistung erheblich. Ineffizienter Code ist jedoch nicht immer offensichtlich. Glücklicherweise verfügen Visual FoxPro 8.0 und 9.0 über ein Tool, den Coverage Profiler, mit dem Sie Code ausführen und die für jede Zeile erforderliche Zeit auflisten können. Der Coverage Profiler ist in der Entwicklungsumgebung, sowohl VFP 8.0 als auch 9.0, und in einer kompilierten ausführbaren Datei in VFP 9.0 verfügbar.

Codedesign kommt häufig in den Vordergrund als Faktor, der die Leistung beeinträchtigt, wenn Sie über legacy (FoxPro 2.x-Prozedurcode) verfügen, der unter VFP ausgeführt wird. Ein LOCATE-Befehl kann beispielsweise statt eines SEEK-Befehls oder einer SEEK()-Funktion verwendet werden. Da die LOCATE-Befehle jeden Datensatz einer Tabelle lesen, ist sie natürlich unter fast allen Umständen langsamer. Der Coverage Profiler hilft Ihnen, solche Engpässe zu identifizieren.

Ein weiterer allgemeiner codebezogener Bereich für Leistungsproblem ist nicht optimierte SELECT-SQL-Befehle. Auch hier kann der Coverage Profiler erkennen, ob der SELECT-SQL-Befehl eine unordentlich lange Zeit in Anspruch nimmt. Sie erfahren jedoch nicht, wie Sie die Abfrage optimieren können. Ziel ist es, sicherzustellen, dass die SELECT-SQL-Befehle Rushmore die Optimierung möglichst nutzen.

Weitere Informationen finden Sie in den folgenden Artikeln und dem MSDN-Link:

Antivirensoftwarekonfiguration

Antivirensoftware kann sich drastisch auf die Leistung von VFP-Anwendungen auswirken. Während niemand die Notwendigkeit von Antivirensoftware bestreitet, kann Ihre Leistung leiden, wenn die Software VFP-Datendateien scannt. Obwohl wir keine Experten für alle möglichen Konfigurationseinstellungen von Antivirensoftware sind, können wir einige allgemeine Vorschläge bereitstellen:

  • AutoScan deaktivieren.
  • Verhindern Sie, dass die Antivirensoftware VFP-Datendateien scannt.
  • Stellen Sie sicher, dass Sie über den neuesten Build von Antivirensoftware verfügen.

Leistung des lokalen Netzwerks

Ein langsames Lokales Netzwerk (LOCAL Area Network, LAN) kann zu einer langsamen Anwendungsleistung führen. Es gibt keine Funktion oder Hilfsprogramm in VFP, mit der Sie die Netzwerkleistung überwachen können. Es gibt Problembehandlungsschritte, mit denen die LAN-Leistung aus der Umgebung entfernt wird, sodass Sie nur die Anwendungsleistung testen können. Zunächst können Sie die Anwendung über einen Terminalservercomputer ausführen. Die Anwendung wird im Arbeitsspeicher des Terminalservercomputers (nicht des Clientbetriebssystems) ausgeführt, und nur das Bildschirmbild muss über das LAN übertragen werden. Zweitens könnten Sie die Anwendung auch lokal ausführen und das Netzwerk beseitigen. (Diese Option funktioniert, wenn nur ein Client eine langsame Leistung erlebt.)

Netzwerkproblem kann komplex sein und umfasst häufig Hardware (Router, Switches, NIC-Karten), Einstellungen (Oplocks, network transmission rates) und Software (Betriebssystemversionen, virtuelle Computer). Häufig erfordern netzwerkbezogene Probleme das Einbeziehen des Plattformteams, um Netmon-Traces zu erstellen und andere Diagnosetools des Betriebssystems auszuführen.

Leistung des Wide Area Network

Wide Area Networks decken in der Regel ein viel größeres geografisches Gebiet und ein LAN ab. Ein LAN kann einen Standort verbinden, an dem ein WAN Standorte in zwei Staaten oder Ländern verbinden kann. Mit zunehmender Entfernung ergeben sich mehr potenzielle Engpässe für die Anwendungsleistung. Die gleichen Probleme beim Beheben von LANs gelten für ein Weitverkehrsnetz (prüfen Sie die Anwendung auf einem Terminalserver oder lokal, falls möglich). Die Beratung mit den Plattformen-Teams oder Hardwarespezialisten kann ebenfalls erforderlich sein.