[Allegro] acon/avanti : Performance unter Linux

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Feb 2 11:32:49 CET 2011


Am 02.02.2011 11:14, schrieb Thomas Berger:
>
> Unter Windows benutzen Sie "Sleep(1)", das ist eine Millisekunde
> (oder Mikrosekunde: Das waere sehr knapp), unter Linux "sleep(1)"
> das ist eine Sekunde und damit deutlich zu lang.
>
Sicher, aber bei Linux/Unix ist an der Stelle keine Millisekunde
möglich, der Befehl sleep() kann da nur Sekunden.

> Wenn Sie da zu einheitlich gesunden Werten (ich wuerde vorschlagen:
> irgendwo zwischen 1 und 10 Millisekunden) gelangen,
nur wie?

>
> Auch koennten Sie das Setzen von "idle = 0" nicht davon abhaengig
> machen, dass erfolgreich Daten verschoben wurden, sondern dass
> es I/O-Conditions gab.
Falls hier wirklich der casus cnaxus liegt, was nach meinen neuerlichen
Versuchen eher nicht so ist.

>> Sicher, haben wir auch vor langer Zeit alles mal durchdacht. Scheiterte
>> dann aber doch an Komplexität, und es wurde acon als separates und
>> relativ schlankes Jobverarbeitungsprogramm geschaffen (zunächst
>
> Das Starten eines Prozesses ist teuer genug und auf meinem Linux-
> System finde ich wenige Binaries, die noch groesser sind als acon:
> Soviel zu "schlank".
Es hatte "relativ schlank" geheißen, und das meint etwa im Vergleich
zu a99, das ja auch ein Jobverarbeitungsprogramm ist.

 > Das ~Oeffnen~ einer Datenbank mit dem dazu
> erforderlichen Oeffnen einer Vielzahl von Dateien wird allerdings
> wesentlich teurer sein als das reine Aufstarten von acon.
Eben. Deshalb raten wir immer, die oft gebrauchten Dateien (Index-
parameter, bestimmte Jobs u.a.) nicht ohne Not in allzuviele
Includes zu zerlegen.

> ...  Innerhalb
> der Klassenbibliothek muesste sich eigentlich die Stelle
> ausfindig machen, wo die grundlegende Initialisierung (.CFG
> Lesen, .api Lesen, Datenbankdateien oeffnen) in die eher
> als dynamisch aufzufassende (Anzeige/Export/Druck-Parameter laden,
> Arbeitsspeicher initialisieren, Flexe und Jobs ausfuehren)
> uebergeht...
>
Sicher, das ist ganz klar. Erst in einer Jobausführung werden die
"eher als dynamisch aufzufassenden" Dinge gemacht: Satz- und 
Exportobjekte, Ergebnislisten anlegen.

B.E.



Mehr Informationen über die Mailingliste Allegro