[Allegro] Langsamkeit von avanti unter Windows
Bernhard Eversberg
ev at biblio.tu-bs.de
Di Apr 23 08:55:43 CEST 2013
Am 03.04.2013 08:20, schrieb Bernhard Eversberg:
>
> Immer wieder mal fällt auf, daß Windows-avanti nicht besonders schnell
> arbeitet. Schaut man in die LOG-Datei, sieht man typischerweise lange
> Sequenzen von Meldungen, die jeweils das Übertragen von 2 Bytes
> melden, obwohl der bereitgestellte Pufferbereich sehr viel mehr Daten
> fassen könnte. Das passiert nur bei etwas längeren Jobs, die zunächst
> aber normal anlaufen, und dann plötzlich geht das im Schrittempo weiter.
In langen Versuchsreihen konnte man die Ursache einkreisen.
Es lag an der Funktion zum Anlegen einer "pipe" in pipe_open3()
im file pipe.c, wo die Puffergröße nicht vorgegeben, sondern dem
System überlassen wurde. Ab ca. 4000 Byte Größe der Jobdatei
kam Windows nicht mehr klar und übertrug immer nur 2 Bytes durch
die Röhre. Nun wurde 32768 vorgegeben, d.h. 32K, und damit klappen dann
auch die längsten Jobs, die wir zur Zeit im Standardpaket bzw. auch für
a35 haben, insbes. kalend.job (17K) und a-overl.job (9K).
Getestet unter Win'7 mit 32 wie auch 64 bit.
Hier ist die aktualisierte Windows-Version:
http://ftp.allegro-c.de/aktuelle-version/avanti/avanti.zip
Linux/UnIX waren, wie berichtet, unbetroffen. In pipe.c
sind die Funktionen jeweils anders konstruiert, d.h. das
Quellfile pipe.c bleibt für Linux/UNIX unverändert.
B.E.
Mehr Informationen über die Mailingliste Allegro