Statusanzeigen [ERLEDIGT]

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Statusanzeigen [ERLEDIGT]

Beitrag von Manfred »

Moin,

es fiel mir im Moment kein besseres Thema dazu ein...

Im Thread Index Treiber wurde auch das Problem der Ablaufanzeige während einer Abarbeitung angesprochen.

Ich habe bisher jedesmal beim Durchlaufen einer Datenbank die RECNO() angezeigt, oder einen Zähler mitlaufen lassen, der in Einzelschritten zwischendurch den Stand des Laufes anzeigte.
Jetzt habe ich die Intervalle des Anzeigens von 1 auf 500 angehoben, oder ganz abgeschaltet, wenn die DB nicht zu groß war. Es ist doch tatsächlich ein Tempogewinn von ca. 50% mindestens zu erreichen. Also frißt die Anzeige jedes einzelnen Increment ganz schön Performance.

Nur mal so, falls es einen interessieren sollte :-)

Vielleicht hat jemand von euch noch ein paar Tricks, oder Experimente auf dem Gebiet gemacht und kann sie hier unterbringen? Wäre doch sicherlich interessant zu erfahren, bei welchen Abläufen man noch Geschwindigkeit herauskitzeln kann.
Zuletzt geändert von Manfred am Mi, 14. Apr 2010 20:25, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Statusanzeigen

Beitrag von Martin Altmann »

Hallo Manfred,
Manfred hat geschrieben:Ich habe bisher jedesmal beim Durchlaufen einer Datenbank die RECNO() angezeigt, oder einen Zähler mitlaufen lassen, der in Einzelschritten zwischendurch den Stand des Laufes anzeigte.
Jetzt habe ich die Intervalle des Anzeigens von 1 auf 500 angehoben, oder ganz abgeschaltet, wenn die DB nicht zu groß war.
nur zum Verständnis: Du hast doch Deine Prüfung nicht in der Funktion mit der Ausgabe gemacht, sondern vorher, oder?
Also: erst geprüft, ob die Funktion aufgerufen werden soll
und nicht: immer aufgerufen, und in der Funktion geprüft, ob eine Nummer geschrieben werden soll
Ersteres ist nicht nämlich wesentlich schneller als letzteres :-)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Statusanzeigen

Beitrag von Manfred »

Moin Martin,
Martin Altmann hat geschrieben:Hallo Manfred,
nur zum Verständnis: Du hast doch Deine Prüfung nicht in der Funktion mit der Ausgabe gemacht, sondern vorher, oder?
Also: erst geprüft, ob die Funktion aufgerufen werden soll
und nicht: immer aufgerufen, und in der Funktion geprüft, ob eine Nummer geschrieben werden soll
Ersteres ist nicht nämlich wesentlich schneller als letzteres :-)
wie ich es im Falle des Indexaufbaus gemacht hatte, weißt Du ja schon. Beim Ablauf eines Durchlaufes lief es vereinfacht so:

DO WHILE ! db->(EOF())
@ x,y SAY db->RECNO()) PICTURE "9999999"
db->(DBSKIP())
ENDDO
das habe ich dann so geändert:

nZaehler := 0
DO WHILE ! db->(EOF())
nZaehler++
IF nZaehler = 500
@ x,y SAY db->RECNO()) PICTURE "9999999"
nZaehler := 0
ENDIF
db->(DBSKIP())
ENDDO

Das hat dann den besagten Tempogewinn gebracht. Mir fällt nicht ein, wie man das eleganter machen könnte um noch mehr Tempo herauszuholen.
Ich rede jetzt rein vom Textmodus.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Statusanzeigen

Beitrag von Martin Altmann »

Hallo Manfred,
Manfred hat geschrieben:Vielleicht hat jemand von euch noch ein paar Tricks, oder Experimente auf dem Gebiet gemacht und kann sie hier unterbringen? Wäre doch sicherlich interessant zu erfahren, bei welchen Abläufen man noch Geschwindigkeit herauskitzeln kann.
hatte ich an anderer Stelle schon mal geschrieben (glaube ich): Wenn man eine (kleinere) Datenbank hat, aus der man immer wieder Daten braucht, ist es oft schneller, diese in ein Array zu laden und die Daten dann aus diesem Array heraus zu benutzen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten