Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Tja, wie erkenne ich überlast, das problem hatte ich früher nicht, seit der neuen Firmware habe ich das gefühl das der EIBPC2 auch nicht mehr so rund läuft.
bei mir war 40000 :-) und wenn du da dein 10 mal einen json drauf packts, geht der EibPC2 in die knie.
somit habe ich dann z.b. 40 lampen a 1000 gemacht und dann dort je lampe 10 abfragen. damit kann er umgehen
Es geht weniger um die statische Länge (zB 1400) sondern mehr um die tatsächliche, die beim parsen eine Rolle spielt.
Im Experten kannst du beliebige Längen verwenden (c1-c65534). c0 kannst du für "konstante" Strings mit Initialisierung nutzen, z.B. bei IPs/Hosts: $192.168.1.1$c0, dann wird die Länge durch den Parser selbst festgelegt.
Hier war das Problem aber das Parsen eines langen Strings für viele unterschiedliche Elemente, also sinngemäß:
Code:
status = $ganz großes JSON-Objekt$
if change(status) then {
wert1 = parsejson(status, $/a/b/1$);
wert2 = parsejson(status, $/a/b/2$);
wert3 = parsejson(status, $/a/b/3$);
...
wert100 = parsejson(status, $/c/d/1$);
...
} endif
Hier ist folgendes es deutlich effizienter:
Code:
status = $ganz großes JSON-Objekt$
if change(status) then {
statusA = parsejson(status, $/a$);
} endif
if change(statusA) then {
statusB = parsejson(status,A $/b$);
} endif
if change(statusB) then {
wert1 = parsejson(statusB, $/1$);
wert2 = parsejson(statusB, $/2$);
wert3 = parsejson(statusB, $/3$);
...
} endif
Natürlich alles immer im Verhältnis zum Aufwand.
Edit: Variablennamen korrigiert
Zuletzt geändert von foobar0815; 02.03.2025, 02:05.
nur ein Beispiel für einen sehr langen Json String aus welchem unterschiedliche Werte entnommen werden sollen
Aber das Optimierungsbeispiel verstehe ich jetzt nicht.
Status B und die Werte 1 bis n wird ja nur geparst wenn sich status A ändert. Aber das ist ja nich immer der Fall
[QUOTE=foobar0815;n2022594]Es geht weniger um die statische Länge (zB 1400) sondern mehr um die tatsächliche, die beim parsen eine Rolle spielt.
Im Experten kannst du beliebige Längen verwenden (c1-c65534). c0 kannst du für "konstante" Strings mit Initialisierung nutzen, z.B. bei IPs/Hosts: $192.168.1.1$c0, dann wird die Länge durch den Parser selbst festgelegt.
Hier war das Problem aber das Parsen eines langen Strings für viele unterschiedliche Elemente, also sinngemäß:
Code:
status = $ganz großes JSON-Objekt$
if change(status) then {
wert1 = parsejson(status, $/a/b/1$);
wert2 = parsejson(status, $/a/b/2$);
wert3 = parsejson(status, $/a/b/3$);
...
wert100 = parsejson(status, $/c/d/1$);
...
} endif
Hier ist folgendes es deutlich effizienter:
Code:
status = $ganz großes JSON-Objekt$
if change(status) then {
statusA = parsejson(status, $/a$);
} endif
if change(statusA) then {
statusB = parsejson(status,A $/b$);
} endif
if change(statusB) then {
wert1 = parsejson(statusB, $/1$);
wert2 = parsejson(statusB, $/2$);
wert3 = parsejson(statusB, $/3$);
...
} endif
wie gehe ich damit um wenn der wert3 z.b. nicht immer im json ist. dann flapped ja meine variable(wert3) .
ich würde vermuten das ich immer wert3temp machen müsste und dann abfragen ob nicht leer und dann in wert3 schreiben. so das ich immer den letzten wert3 habe ?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar