Zitat von
jef2000
Hallo,
Wenn du knxread und knx(s)write benützt, hast du direkt zugriff auf eibd. Kein Linknx ist dafür nötig.
Wir haben uns missverstanden, ich nutze Deine php-function "knxread", die wiederum das linknx anspricht:
Code:
function knxread($fp, $name)
{
$in = "<read><object id='$name'/></read>\n\4";
...
Nicht direkt eibd.
Ich habe mittlerweile auch rausgefunden, warum bei einem Seitenaufbau, in dem ich den Status von insgesamt 27 Objekten darstelle und dafür die 27mal die o.g. php-function aufrufe, über 3 Sekunden vergehen.
Ich habe festgestellt, dass im Normalfall die Funktion knapp 40ms braucht, aber in Einzelfällen über 1000ms (je Status!) verbraucht wurden.
Das lag daran, dass ich zufällig ein "/"-Zeichen (slash) in den Objektnamen hatte, was auch durchaus alles funktioniert hat. Nur hat das wohl Probleme gemacht beim Erzeugen und Append der persist-Log-Dateien.
Nachdem ich die Objektnamen um den slash bereinigt hatte und alle Objekte mal geschaltet hatte, ging der Seitenaufbau (27 Objekt-Statusabfragen) in rund 1080ms.
@jef:
Interessant finde ich nun noch, dass die linknx-interne (gecachte) Status-Ermittlung je Objekt immerhin knapp 40ms dauert:
Code:
EG_Wohnen_Ist start - last : 0.00084
EG_Wohnen_Ist ende - last : 0.03921
Hier erfolgt doch kein Buszugriff, was ist dennoch der Performance-intensive Teil dabei? Das XML-Parsing?
Grüsse,
Dirk
Lesezeichen