-
Hintergrund
der Erfindung Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft
im Allgemeinen ein Sprachverarbeitungssystem, ein Sprachverarbeitungsverfahren
und ein Speichermedium, das ein Sprachverarbeitungsprogramm speichert. Insbesondere
betrifft die Erfindung ein Sparchverarbeitungsprogramm und ein Sprachverarbeitungsverfahren,
die einen Speicherbereich, der für
die Sammlung von Profilinformationen eines Computers notwendig ist,
und den Verarbeitungsüberhang
der Sammlung von Profilinformationen nach Programmausführung reduzieren
kann.
-
Beschreibung
des Standes der Technik
-
Zur Verbesserung der Leistung bei
der Ausführung
von Programmen ist es sehr wirksam, das Verhalten von Programmen
auf der Basis von Profilinformationen zu kennen. Die Profilinformationen sind
Informationen, die durch dynamisches Überwachen der Anzahl der Ausführungen,
der Ausführungsdauer
eines bestimmten Abschnitts, Verzweigungsinformationen usw. gesammelt
werden. Die so erhaltenen Profilinformationen werden als Analyseinformationen
des Programms verwendet. Die Optimierung zur Verbesserung der Aus solcher
Profilinformationen ausgeführt.
Die Profilinformation ist eine nützliche
Information, die eine spezifische Optimierung des Programms ermöglicht.
Aufrufpaar-Informationen, die die Aufruffrequenz eines Aufrufers/Aufgerufenen
(Aufruferseite-Funktion/Aufgerufenenseite-Funktion) anzeigen, sind
in dem Programm eine Art solcher Profilinformationen.
-
Nach Sammeln der Profilinformationen,
insbesondere der Aufrufpaar-Informationen, ist ein Profilsammelverfahren
bekannt, das die Verarbeitungsüberhang
bei der Sammlung der Profilinformationen reduziert und konstant
macht, und das die Berechnung des Gesamtaufwands ermöglicht (s.
ungeprüfte Japanische
Patentanm. No. Heisei 9(1997)-62544).
-
10 ist
ein Blockdiagramm, das den Aufbau eines herkömmlichen Profilinformations-Sammelsystems
zeigt, und 11A, 11B und 11C sind erklärende Darstellungen eines Aufrufpaarinformations-Erzeugungsverfahrens
in dem in 10 gezeigten
System.
-
Im Anschluss hieran wird ein herkömmliches Profilinformations-Sammelsystem mit
Bezug auf die 10, 11A, 11B und 11C beschrieben.
In einem in 10 gezeigten
Profilprozess-Einfügeabschnitt 110 wird
bei Vorhandensein einer Funktionsaufrufanweisung in einem Quellprogramm 140 ein
Quellprogramm, das einen Profilingprozess enthält, erzeugt, indem ein Verzweigungscode
direkt vor Ausführung der
Funktionsaufrufanweisung in die Profilinformationssammlung eingefügt wird.
Ein Compilierungsund Programmausführabschnitt 120 führt die
Complierung des Quellprogramms einschließlich des Profilprozesses aus.
-
Wenn der Profilprozess ausgeführt wird,
wird eine zweidimensionale in 11A gezeigte
Aufrufpaarinformations-Verarbeitungstabelle gezeichnet, indem eine
Aufruf-ID, die die Aufruferseitenfunktion anzeigt, und eine Aufgerufenen-ID,
die die Aufgerufenenseitenfunktion anzeigt, als Argument für das Einrichten
einer linearen in 11C gezeigten
Aufrufpaarinformations- Speichertabelle 160 verwendet. Anschließend wird
die Aufrufanzahl des Aufrufpaars um 1 erhöht.
-
f (Aufrufen, Aufgerufener) = [ (Aufrufer
+ Aufgerufener – 1)
* (Aufrufer + Aufgerufener -2)]/2 + Aufrufer – 1 ...(1) In 11A, entsprechen ID1, ID2, ID3 und ID4
jeweils der Hauptroutine (als "main" bezeichnet), einer
Funktion (als "func1" bezeichnet), einer Funktion
(als "func2" bezeichnet"), und einer Funktion
(als "func3" bezeichnet), wie
es in 11B gezeigt ist.
-
Nach dem Ende der Programmausführung wird
in einem Profilinformations-Erzeugungsabschnitt 130 die
Anzahl der Aufrufe pro jedem relevanten Aufrufpaar aus der linearen
Tabelle der Aufrufpaarinformations-Speichertabelle 160 ausgelesen, indem
ein zugeordneter Wert gemäß der vorangehenden
Gleichung (1) als Index genommen wird. Indem die ausgelesene
Anzahl der Aufrufe aufgezeichnet wird, wird eine Aufrufpaarinformation
ausgegeben.
-
In dem oben dargelegten herkömmlichen Profilinformations-Sammelverfahren
muss jedoch der notwendige Speicherbereich im Vorhinein in einem
Stück konzentriert
reserviert sein, um das Aufzeichnen der Anzahl der Aufrufe für alle Aufrufpaarinformationen
in dem Programm zu ermöglichen.
-
Da es möglich ist, eine Aufrufbeziehung
zu verursachen, kann in diesem Fall bei einer gegenseitigen Beziehung
aller in dem Programm enthaltenen Funktionen eine zweidimensionale
Tabelle eine Anzahl von Aufrufen für alle möglichen Kombinationen aller
Funktionen (einschließlich
dem Aufruf der fraglichen Funktion selbst) speichern. Wenn die Anzahl der
in dem Programm enthaltenen Funktionen groß ist, ist daher eine große Menge
an Kapazität
als Bereich für
die Tabelle, die Aufrufpaare speichert, erforderlich.
-
Des Weiteren ist eine lange Periode
für den Initialisierungsprozess
für einen
so großen
Bereich erforderlich. Außerdem
braucht es eine lange Zeit zum Zuordnen der zweidimensionalen Aufrufpaarinformations-Speichertabelle,
die für
sowohl den Auf ruf er als auch den Aufgerufenen in der linearen
Aufrufpaarinformations-Speichertabelle zugeordnet wird. Daher wird
der Verarbeitungsüberhang
beim Profilprozess nach der Ausführung
des Programms groß.
Außerdem
wird es nötig,
den Index sogar nach Ausgabe der Aufrufpaarinformation abzuleiten
(zuzuordnen), womit eine lange Zeit für einen solchen Prozess zum
weiteren Anstieg des Verarbeitungsüberhangs beim Profilprozess
nach der Programmausführung
gebraucht wird.
-
Die Druckschrift US-A-5,606,699 offenbart ein
Verfahren zum Speichern der und Zugreifen auf die Ausführungsinformationen
von objektorientierten Programmen, die auf einem Computer laufen,
das das Herausziehen von Informationen aus einem Ereignisstrom durch
ein Ausführungsmodel
beinhaltet.
-
Zusammenfassung
der Erfindung
-
Es ist eine Aufgabe der Erfindung,
ein Sprachverarbeitungssystem und ein Sprachverarbeitungsverfahren
bereitzustellen, die einen Speicherbereich einer zu verwendenden
Tabelle nach dem Sammeln von Profilinformationen in der Programmausführung verkleinern
können.
-
Eine weitere Aufgabe der Erfindung
ist es, ein Sprachverarbeitungssystem und ein Sprachverarbeitungsverfahren
bereitzustellen, die einen Verarbeitungsüberhang durch den Profilprozess
nach der Programmausführung
so weit wie möglich
verringern können.
Die genannten Aufgaben werden erfindungsgemäß durch die anliegenden unabhängigen Ansprüche gelöst.
-
Gemäß dem ersten Aspekt der Erfindung weist
ein Sprachverarbeitungssystem, das eine Profilinformation während der
Ausführung
eines Programms sammelt, Folgendes auf:
eine Profilprozess-Einfügeeinrichtung
zum Erfassen eines Funktionsaufrufs in einem Quellprogramm durch
statische Analyse, wobei pro in dem Quellprogramm erfassten Funktionsaufruf
ein Verzweigungscode in den Profilprozess eingeführt wird und ein Bereich einer
Tabelle, die die Anzahl der entsprechenden Funktionsaufrufe pro
einer Identifikationsnummer eines Aufrufpaars in dem Funktionsaufruf
speichert, gesetzt wird, und
eine Programm-Ausführeinrichtung
zum Ausführen einer Übersetzung
des Quellprogramms, bei dem in den Profilprozess der Verzweigungscode
eingeführt ist,
und Erhöhen
der Anzahl der Funktionsaufrufe der Tabelle, indem die Identifikationsnummer
als Index genommen wird, die einer Art Aufrufpaar in dem entsprechenden
Funktionsaufruf entspricht, wenn der Verzweigungscode zu dem eingeführten Profilprozess
vorhanden ist.
-
Bei dem bevorzugten Aufbau weist
das Sprachverarbeitungssystem weiter eine Profilinformations-Ausgabeeinrichtung
zum Erzeugen von Informationen über
eine Anzahl von Aufrufen pro Art des Aufrufpaars durch Auslesen
der Anzahl der Funktionsaufrufe aus der Tabelle über die Identifikationsnummer
auf.
-
Bei einem weiteren bevorzugten Aufbau weist
das Sprachverarbeitungssystem weiter eine Datenbank auf, die Aufrufpaare
in dem Funktionsaufruf und deren Identifikationsnummer speichert,
wobei die Profilprozess-Einfügeeinrichtung
eine Beurteilung abgibt, ob das Aufrufpaar in dem erfassten Funktionsaufruf
in der Datenbank registriert ist, und, wenn dies nicht der Fall
ist, das Aufrufpaar in dem Funktionsaufruf speichert, indem sie
dabei die Identifikationsnummer pro Art hinzufügt.
-
Bei einem weiteren bevorzugten Aufbau weist
das Sprachverarbeitungssystem weiter eine Datenbank auf, die Aufrufpaare
in dem Funktionsaufruf und deren Identifikationsnummer speichert,
wobei die Profilprozess-Einfügeeinrichtung
eine Beurteilung abgibt, ob das Aufrufpaar in dem erfassten Funktionsaufruf
in der Datenbank registriert ist und speichert, wenn dies nicht
der Fall ist, das Aufrufpaar in dem Funktionsaufruf und fügt dabei
die Identifikationsnummer pro Art hinzu, und das weiter eine Profilinformations-Ausgabeeinrichtung
zur Erzeugung von Informationen über
Anzahl der Aufrufe pro Art des Aufrufpaares durch Herauslesen der
Nummer des Funktionsaufrufs aus der Tabelle über die Identifikationsnummer
der Datenbank aufweist.
-
Bei einem weiteren bevorzugten Aufbau führt die
Profilprozess-Informationseinrichtung
einen Initialisierungsprozess nach dem Setzen eines Tabellenbereichs
durch.
-
Bei einem weiteren bevorzugten Aufbau setzt
die Profilprozess-Einfügeeinrichtung
entsprechend einer maximalen Anzahl der Identifikationszahl eines
Tabellebereichs.
-
Gemäß dem zweiten Aspekt der Erfindung weist
ein Sprachverarbeitungsverfahren, das während der Ausführung eines
Programmes eine Profilinformation sammelt, folgende Schritte auf:
den
Schritt der Erfassung des Funktionsaufrufs in einem Quellprogramm
durch statische Analyse, Einfügen
eines Verzweigungscodes über
einen in dem Quellprogramm erfassten Funktionsaufruf in den Profilprozess
und Setzen eines Tabellenbereichs, der die Anzahl der entsprechenden
Funktionsaufrufe über
eine Identifikationsnummer des Aufrufpaars in dem Funktionaufruf
speichert, und den Schritt der Ausführung einer Übersetzung
des Quellprogramms, bei dem in den Profilingprozess der Verzweigungscode
eingeführt
ist, und Erhöhen
der Anzahl des Funktionsaufrufs der Tabelle, indem die der Art des Auf
rufpaares in dem entsprechenden Funkti- onsaufruf entsprechende
Identifikationsnummer als Index verwendet wird, wenn der in den
Profilingprozess eingefügte
Verzweigungscode vorhanden ist.
-
Bei dem bevorzugten Aufbau weist
das Sprachverarbeitungsverfahren zudem den Schritt des Erzeugens
von Informationen über
die Anzahl der Aufrufe pro Art eines Aufrufpaars durch Auslesen der
Anzahl von Funktionsaufrufen aus der Tabelle über die Identifikationsnummer
auf .
-
Bei einem weiteren bevorzugten Aufbau weist
das Sprachverarbeitungsverfahren zudem eine Datenbank auf, die Aufrufpaare
in dem Funktionsaufruf und deren Identifikationsnummer speichert,
wobei der Profilprozess-Einfügeschritt
eine Beurteilung abgibt, ob das Aufrufpaar in dem erfassten Funktionsaufruf
in der Datenbank registriert ist und, falls dies nicht der Fall
ist, speichert er das Aufrufpaar in dem Funktionsaufruf durch Addieren
der Identifikationsnummer pro Art, und
weist weiter einen Schritt
der Erzeugung von Informationen über
die Aufrufanzahl pro Art von Aufrufpaaren durch Auslesen der Anzahl
von Funktionsaufrufen aus der Tabelle durch die Identifikationsnummer
der Datenbank auf.
-
Bei einem weiteren bevorzugten Aufbau führt der
Profilprozess-Einfügeschritt
einen Initialisierungsprozess nach dem Setzen eines Bereichs der Tabelle
durch.
-
Bei einem weiteren bevorzugten Aufbau setzt
der Profilprozess-Einfügeschritt
den Bereich der Tabelle entsprechend einer maximalen Anzahl der
Identifikationsnummer.
-
Gemäß einem weiteren Aspekt der
Erfindung weist ein computerlesbarer Speicher, der ein zu ladendes
und auszuführendes
Sprachverarbeitungsprogramm in einem Computer zum Sammeln von Profilinformationen
während
der Ausführung
eines Objektprogramms speichert, Folgendes auf:
das Erfassen
eines Funktionsaufrufs in einem Quellprogramm durch statische Analyse,
Einfügen
eines Verzweigungscodes in den Pro filprozess pro in dem Quellprogramm
erfassten Funktionsaufruf und Setzen eines Tabellenbereichs, der
die Anzahl von entsprechenden Funktionsaufrufen pro einer Identifikationsnummer
eines Aufrufpaars in einem Funktionsaufruf speichert, und
das
Ausführen
der Übersetzung
des Quellprogramms, bei dem der Verzweigungscode in den Profilprozess
eingeführt
wurde, und Erhöhen
der Anzahl von Funktionsaufrufen der Tabelle, indem die Identifikationsnummer,
die einer Art des Aufrufpaars im entsprechenden Funktionsaufruf
entspricht, als Index verwendet wird, wenn der eingeführte Profilingprozess
vorhanden ist.
-
Weitere Aufgaben, Merkmale und Vorteile der
vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen
Beschreibung.
-
Kurzbeschreibung
der Zeichnungen
-
Die vorliegende Erfindung ist besser
verständlich
durch die folgende ausführliche
Beschreibung und durch die anliegenden Zeichnungen der bevorzugten
Ausführungsformen
der vorliegenden Erfindung, die jedoch nicht als erfindungsbegrenzend betrachtet
werden sollten, sondern allein dem besseren Verständnis dienen.
-
Es zeigen:
-
1 ein
Blockdiagramm, das einen allgemeinen Aufbau eines elektrischen Aufbaus
einer Ausführungsform
eines erfindungsgemäßen Sprachverarbeitungssystems
zeigt;
-
2 ein
Ablaufdiagramm, das den Ablauf des Prozesses eines Statische Analyse-
und Profilprozess-Einfügeabschnitts
in dem System aus 1 zeigt;
-
3 ein
Ablaufdiagramm, das einen Vorgang des Prozesses eines Compilingprogramm-Ausführabschnitts
in dem System aus 1 zeigt;
-
4 ein
Ablaufdiagramm, das den Ablauf des Prozesses eines Profilinformations-Kombinationsabschnitts
in dem System aus 1 zeigt;
-
5 eine
erläuternde
Darstellung eines Quellprogramms in dem in 1 gezeigten System;
-
6 eine
erläuternde
Darstellung einer Aufrufpaar-Datenbank in dem in 1 gezeigten System;
-
7 eine
erläuternde
Darstellung eines Quellprogramms, das einen Profilprozess in dem
in 1 gezeigten System
einschließt;
-
8 eine
erläuternde
Darstellung einer Aufrufpaarinformations-Speichertabelle in dem
System aus 1;
-
9 eine
erläuternde
Darstellung einer Aufrufpaarinformation in dem in 1 gezeigten System;
-
10 ein
Blockdiagramm, das den elektrischen Aufbau des herkömmlichen
Profilinformations-Sammelsystems zeigt; und
-
11A, 11B und 11C erläuternde Darstellungen einer
Aufrufpaarinformations-Erzeugungseinrichtung in dem herkömmlichen
System.
-
Beschreibung
der bevorzugten Ausführungsform
-
Die vorliegende Erfindung wird im
Folgenden ausführlich
hinsichtlich der bevorzugten Ausführungsform der vorliegenden
Erfindung mit Bezug auf die anliegenden Zeichnungen beschrieben.
In der folgenden Beschreibung sind zahlreiche spezifische Details
dargelegt; um dem Fachmann ein tiefgründiges Verständnis der
vorliegenden Erfindung zu eröffnen.
Es ist jedoch offensichtlich, dass sie ohne diese spezifischen Details
ausgeführt
werden kann. Auf der anderen Seite sind gut bekannte Strukturen
nicht ausführlich
gezeigt, damit die Erfindung klarer hervorkommt.
-
1 ist
ein Blockdiagramm, das einen allgemeinen Aufbau eines elektrischen
Aufbaus einer Ausführungsform
eines erfindungsgemäßen Sprachverarbeitungssystems
zeigt, 2 ist ein Ablaufdiagramm,
das den Ablauf des Prozesses eines Statische Analyse- und Profilprozess-Einfügeabschnitts in
dem System aus 1 zeigt, 3 ist ein Ablaufdiagramm,
das einen Vorgang des Prozesses eines Compilingprogramm-Ausführabschnitts
in dem System aus 1 zeigt, 4 ist ein Ablaufdiagramm, das
den Ablauf des Prozesses eines Profilinformations-Kombinationsabschnitts
in dem System aus 1 zeigt, 5 ist eine erläuternde
Darstellung eines Quellprogramms in dem in 1 gezeigten System, 6 ist eine erläuternde Darstellung einer Auf rufpaar-Datenbank
in dem in 1 gezeigten
System, 7 ist eine erläuternde
Darstellung eines Quellprogramms, das einen Profilprozess in dem
in 1 gezeigten System
einschließt, 8 ist eine erläuternde
Darstellung einer Aufrufpaarinformations-Speichertabelle in dem
System aus 1, und 9 ist eine erläuternde Darstellung einer Aufrufpaarinformation
in dem in 1 gezeigten System.
-
Die gezeigte Ausführungsform des erfindungsgemäßen Sprachverarbeitungssystems
ist im Allgemeinen aus einem Statische Analyse- und Profilprozess-Einfügeabschnitt 10,
einem Compiling- und Programmausführungsabschnitt 20 und
einem Profilinformations-Kombinationsabschnitt 30 aufgebaut.
-
Hier erfasst der Statische Analyse-
und Profilprozess-Einfügeabschnitt 10 den
Aufruf einer Funktion in einem Quellprogramm 40 durch statische
Analyse. Anschließend
wird eine Identifikationsnummer eines Auf rufpaares in einer Aufrufpaar-Datenbank 50 registriert,
und ein Code für
den Profilprozess wird in das Quellprogramm 40 eingefügt. In Verbindung hiermit
wird ein Bereich für
eine Aufrufpaarinformations-Speichertabelle 70 für das Zählen der
Anzahl von Aufrufen pro Aufrufpaar gesetzt.
-
Der Compiling- und Programmausführabschnitt 20 führt das
Compillieren des den Profilprozess enthaltenden Quellprogramms aus,
in das der Profilprozess eingefügt
ist. Wenn der Profilingprozess durchgeführt wird, wird die Anzahl der
Aufrufe in der Aufrufpaarinformations-Speichertabelle 70 erhöht, indem
die Identifikationsnummer des Aufrufpaars beim Aufrufen der Funktion
verwendet wird.
-
Der Profilinformations-Kombinationsabschnitt 30 liest
den Inhalt der Aufrufpaarinformations-Speichertabelle 70 aus,
um eine Aufrufpaarinformation zu erzeugen.
-
Als Nächstes wird die Arbeitsweise
der gezeigten Ausführungsform
des Sprachverarbeitungssystems mit Bezug auf 1 bis 9 beschrieben.
-
Es wird angenommen, dass eine Funktionsaufrufroutine
in der Hauptroutine des Quellprogramms 40 enthalten ist,
wie beispielsweise in 5 gezeigt.
Hier wird ebenfalls angenommen, dass die entsprechende Funktion
func1, Funktion func2, Funktion func3, Funktion func1 ... von der
Hauptroutine abgerufen werden und mit "main" bezeichnet sind,
um eine Berechnung mit den entsprechenden Argumenten a, b, c, d,
..., durchzuführen
und die entsprechenden x1, x2, x3, x4, ... durch Ergebniswerte zu
ersetzen.
-
In dem Statische Analyse- und Profilprozess-Einfügeabschnitt 10 wird
eine statische Analyse gemäß dem in 2 gezeigten Ablaufdiagramm durchgeführt, um
einen Prozess des Einfügens
des Codes, der den Profilprozess für das Quellprogramm 40 befehligt,
durchzuführen
(Schritt 201 in 2).
-
Eine Anweisung wird nämlich aus
dem Quellprogramm 40 entnommen (Schritt 202). Anschließend wird
die Anweisung geprüft,
ob sie eine Funktionsaufrufanweisung ist oder nicht (Schritt 203).
Ist die Anweisung die Funktionsaufrufanweisung, wird ein Paar (Aufrufpaar),
das aus einem Aufrufer und einem Aufgerufenen besteht, in dem Funktionsaufruf überprüft, ob es
in der Aufrufpaar-Datenbank 50 registriert ist oder nicht
(Schritt 204).
-
Wenn das Ergebnis der Überprüfung in Schritt
204 ergibt, dass das geprüfte
Auf rufpaar nicht in der Auf rufpaar-Datenbank 50 registriert ist,
wird das Aufrufpaar zusammen mit der Identifikationsnummer in der
Aufrufpaar-Datenbank 50 registriert (Schritt 205). Wenn
das geprüfte
Auf rufpaar in Schritt 204 oder nach der Registrierung in der Auf
rufpaar-Datenbank bei Schritt 205 in der Auf rufpaar-Datenbank 50 registriert
ist, wird ein Verzweigungscode direkt vor einem Verzweigungscode
an den Aufrufer in dem Quellprogramm in den Profilprozess eingefügt (Schritt
206). Ein derartiger Prozess wird bis zum Ende des Quellprogramms
wiederholt (Schritt 207). Nach Erreichen des Endes des Quellprogramms
wird, damit eine Anzahl von Aufrufen für alle in der Aufrufpaar-Datenbank 50 registrierten
Auf rufpaare gespeichert werden kann, ein Bereich für die Aufrufpaarinformations-Speichertabelle 70 als
die lineare Tabelle gesetzt, und in Verbindung hiermit wird ein
Initialisierungsprozess für
den gesetzten Bereich in das Quellprogramm eingefügt (Schritt
208). Zu diesem Zeitpunkt wird für
den Bereich der Aufrufpaarinformations-Speichertabelle 70 eine
Größe festgelegt,
die fähig
ist, Aufrufinformationen der Aufrufpaare in einer der maximalen
Anzahl der Identifikationsnummer entsprechenden Anzahl zu speichern.
-
In der Aufrufpaar-Datenbank 50,
in der die Registrierung so abgeschlossen wurde, werden Korrespondenzen
zwischen den zugeordneten Identifikationsnummern 51 und
den Funktionsnamen des Aufrufers 52 und des Aufgerufenen 53,
die das Aufrufpaar bilden, registriert, wie in 6 gezeigt.
-
Andererseits wird durch Einfügen des
Profilprozesses für
das Quellprogramm 40 das Quellprogramm 60 erzeugt,
das den Profilingprozess wie in 7 gezeigt
enthält.
Nämlich
als Profilprozess-Anweisung ein Befehl für das Erhöhen eines relevanten Eintretens
um eins, indem die Identifikationsnummer des Aufruf paares als Index
der Aufrufpaarinformations-Speichertabelle 70 verwendet
wird. Auch ein Code für
das Durchführen
einer Verzweigung bei dem Profilingprozess wird direkt vor einem
Verzweigungscode zu dem Auf ruf er pro Funktionsaufrufanweisung
eingefügt.
-
Als Nächstes wird in dem Compiling-
und Programmausführabschnitt 20 ein
Prozess durchgeführt,
wie er im Ablaufdiagramm in 3 gezeigt
ist. Zuerst wird das Quellprogramm 40 compiliert (Schritt 301
in 3). Anschließend wird
das in ein ausführbares
Format übersetzte
Programm ausgeführt. Durch
Ausführen
der Anweisung in dem Programm (Schritt 302) wird eine Überprüfung durchgeführt, ob die
momentan ausgeführte
Anweisung für
die Verzweigung des Profilingprozesses gilt oder nicht (Schritt
303). Wenn die momentan ausgeführte
Anweisung für
die Verzweigung des Profilingprozesses gilt, wird die Anzahl der
Aufrufe des relevanten Aufrufpaars um eins erhöht, indem die Identifikationsnummer
als Index der Aufrufpaarinformations-Speichertabelle 70 verwendet
wird (Schritt 304). Nach Wiederholen des vorhergehenden Prozesses
bis zum Ende des compilierten Programms (Schritt 305) wird die Aufrufpaarinformations-Speichertabelle 70 beispielsweise
in Form einer Datei gespeichert (Schritt 306).
-
Als Nächstes führt der Profilinformations-Kombinationsabschnitt 30 den
in dem Ablaufdiagramm in 4 gezeigten
Prozess durch. Zuerst wird der Inhalt der Aufrufpaarinformations-Speichertabelle 70 ausgelesen,
indem die Identifikationsnummer der Aufrufpaar-Datenbank 50 als
Index verwendet wird, und eine Aufrufpaarinformation, die die Anzahl
der Aufrufe des Aufrufpaars enthält,
wird erzeugt (Schritt 401 in 4).
Wenn der Bezug auf alle Identifikationsnummern der Aufrufpaar-Datenbank 50 durch
Wiederholen des vorhergehenden Prozesses beendet ist (Schritt 402
in 4), endet ein Prozess zur
Ausgabe der Aufrufpaarinformation.
-
In dem gezeigten Beispiel ist der
Inhalt der Aufrufpaarinformations-Speichertabelle wie in 8 dargestellt. Die Anzahl
der Aufrufe der entsprechenden Aufrufpaare ist in sequentieller
Reihenfolge der Identifikationsnummern der entsprechenden Aufrufpaare
aufgezeichnet. In der Aufrufpaarinformations-Ausgabe von dem Profilinformations-Kombinationsabschnitt 30 sind
die Namen der Aufrufer und Aufgerufenen der entsprechenden Auf rufpaare
und die Anzahl der Identifikationsnummern der entsprechenden Aufrufpaare
in sequentieller Reihenfolge gespeichert.
-
Während
die vorliegende Erfindung ausführlich
hinsichtlich der in den anliegenden Zeichnungen dargestellten Ausführungsform
beschrieben wurde, sollten jegliche Modifikationen oder Veränderungen in
der Entwicklung, die gemacht werden können, ohne dass vom Erfindungsprinzip
abgewichen wird, als innerhalb des Schutzumfangs der vorliegenden Erfindung
verstanden werden. Beispielsweise ist die für die Programmierung verwendete
Sprache nicht auf eine Hochsprache beschränkt, sondern kann auch eine
Assemblersprache, Maschinensprache oder eine andere Niegrigpegel-Sprache
sein. Während
FORTRAN oder die C-Sprache als Hochsprachen bevorzugt werden können, können auch ALGOL,
COBOL, PL/I, BASIC und andere beliebige gleichwertige Sprachen anwendbar
sein.
-
Die Initialisierung der Aufrufpaarinformations-Speichertabelle
ist nicht auf nach Setzen des Bereichs beschränkt, sondern kann zu einem
beliebigen Zeitpunkt vor dem Schreiben der Anzahl von Aufrufen stattfinden.
Andererseits kann die Größe des Bereichs
für die
Aufrufpaarinformations-Speichertabelle eine beliebige Größe sein,
solange sie größer ist,
als für
das Speichern der maximalen Anzahl von Identifikationsnummern nötig ist.
-
Die gezeigte Ausführungsform des oben dargelegten
Sprachverarbeitungssystems wird durch eine programmgesteuerte CPU
und einen RAM oder anderen internen Speicher in der Workstation,
einem PC oder einem anderen Computersystem umgesetzt. Das Sprachverarbeitungssystem,
das die vorangehende Funktion umsetzt, wird in einer Form bereitgestellt,
die in einem typischen Speichemedium, wie z. B. einer Magnetplatte,
einer Bildplatte, einem Halbleiter- Speicher usw. gespeichert ist. Das in
dem Speichermedium gespeicherte Sprachverarbeitungsprogramm wird
in dem inneren Speicher des Computersystems geladen, um die CPU
zu steuern und Funktionen der entsprechenden Komponenten zu erkennen.
-
Wie oben dargelegt, kann in dem Profilingprozess,
der die Aufrufpaarinformationen sammelt, ein Speicherbereich gering
gehalten werden, der als eine Tabelle zum Speichern der Aufrufpaarinformationen
verwendet wird. Andererseits kann während der Ausführung des
Programms in dem Profilingprozess der Gesamtaufwand für das Sammeln
der Aufrufpaarinformationen und der Gesamtaufwand für das Ausgeben
der Aufrufpaarinformationen gering gehalten werden.
-
In der vorliegenden Erfindung wird
nämlich nach
Ausführung
des Programms für
den Profilingprozess die Art des in dem Programm enthaltenen Aufrufpaares
zuerst durch die statische Analyse geprüft, um es in der Auf rufpaar-Datenbank
zu behalten, und ein Speicherbereich, der der Anzahl der Aufrufpaare
entspricht, ist sicherlich als die Aufrufpaarinformations-Speichertabelle
vorgesehen, wobei der als Aufrufpaarinformations-Speichertabelle
benötigte Bereich
verkleinert werden kann im Vergleich zu dem Verfahren, das einen
Bereich zum Speichern der Anzahl der Funktionsaufrufe, die allen
vorrausgesetzten Auf rufpaaren der Arten in dem Programm entsprechen,
bereitstellt.
-
Andererseits kann durch Speichern
des durch statische Analyse erhaltenen Aufrufpaars mit der Identifikationsnummer
in der Aufrufpaar-Datenbank und Durchführen der Sammlung der Profilinformationen
durch Erhöhen
des relevanten Eintrags in die Aufrufpaarinformations-Speichertabelle,
indem die Identifikationsnummer als Index verwendet wird, nach Erfassung
des Funktionsaufrufs in dem Programm der für den Profilingprozess während der Ausführung des
Programms nötige
Verarbeitungsüberhang
verkleinert werden im Vergleich zu dem Verfahren nach dem Stand
der Technik, das die Aufrufer-ID bzw. die Aufgerufenen-ID nach Erfassen
des Funktionsaufrufs und Eingeben in die Aufrufpaarinformations-Speichertabelle
abfragt.
-
Da eine Anzahl der Aufrufe pro Aufrufpaar
direkt als Aufrufpaarinformationen von der Aufrufpaarinformations-Speichertabelle
ausgegeben werden kann, kann weiter der für den Profilingprozess während der
Ausführung
des Programms nötige
Verarbeitungsüberhang
verkleinert werden im Vergleich zu dem Verfahren nach dem Stand
der Technik, das Aufrufpaarinformationen von der linearen Tabelle
erhält, die
durch Zuordnen der zweidimensionalen Tabelle erhalten werden.