JFritz Resourcen-Fresser (auf beiden Seiten)

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
Habe jetzt einige Tage mit JFritz (v0.5.2, CVS v1.148 (2006/02/03)) experimentiert, an einer FBFW 7050 (AVM, FW 14.04.01, ohne und mit TSB-LCR v1.37) und unter Win/XP SP2 mit JRE 1.5.0_06 auf einem P4 mit 1,8GHz (einem sonst echt flotten Gerät).

Ergebnis: Tolle Sache, aber in praxi unbrauchbar, weil "Resourcen-Fresser"!

Augenscheinlich wird sehr oft (zumindest nach Gesprächen) jeweils die komplette Anrufliste über ein langsames und grosse Last erzeugendes Verfahren eingelesen. Bei nur ca. 300 Einträgen (den Test-Anrufen von 3 Tagen) dauert dies mehrere Minuten (!).

Weiters wird bei Einsatz des TSB-LCR nach jedem Neustart des telefond augenscheinlich die Verbindung zur Port 1012-Schnittstelle verloren. Da die Updates des LCR nicht vorhersehbar sind, ist dies für eine zu benutzende Anwendung dramatisch (da eben auch keine durch JFritz angestossene Signalisierung über externe Programme mehr stattfinden kann).

1. Windows: "javaw" lastet während eines solchen Anruflisten-Updates auf der oben geschilderten Maschine die CPU lt. Task-Manager zu 94-98% aus - das führt dazu, dass man nicht mal mehr nebenher hier im Forum tippen kann! Ich muss oft eine Pause machen, bis dann mal wieder ein, zwei Wörter auf dem Schirm erscheinen...

2. Fritz!Box: Der Load Index (für 1 bzw. 5 Minuten) geht bei nur einem gleichzeitigen Telefonat (ohne weitere Inet-Aktivität) während solcher Anruflisten-Updates seitens JFritz hoch bis auf 1.29! (1 wäre 100% CPU-Last)

Weiters wird das eine (!) laufende Gespräch (durch die hohe Last) dauernd mit Aussetzern unterbrochen, so dass kaum noch Telefonieren möglich ist.

Wie kommt das? Ist das Einleseschema von JFritz tatsächlich so ungünstig, ist es ein Bug in JFritz oder in JRE 1.5.0 Update 6?

Langsam beginne ich zu ahnen, warum JFritz (zugunsten etwas Besserem, hoffe ich) nicht weiterentwickelt werden soll...
 
Das mit der Last und der Dauer beim Auslesen stimmt schon, aber ich habe ein-
fach "Nach laden auf der Box löschen" aktiviert, und schon ist das Probelm
erledigt.
 
Moonbase schrieb:
Augenscheinlich wird sehr oft (zumindest nach Gesprächen) jeweils die komplette Anrufliste über ein langsames und grosse Last erzeugendes Verfahren eingelesen. Bei nur ca. 300 Einträgen (den Test-Anrufen von 3 Tagen) dauert dies mehrere Minuten (!).
Erster Tip: Lösche ab und zu die Anrufliste auf der FritzBox, dann geht es viel schneller.
Zweiter Tip: Du kannst das ja abstellen, dass nach jedem Gesprächsende die Anrufliste aktualisiert ist. Dafür kann man ja das Häckchen setzen / entfernen.

JFritz holt die Anrufliste der FritzBox genau so ab, wie du diese mit deinem Browser einsehen kannst. Geh mal mit deinem Browser auf die FRITZ!Box Anruflisten-Seite. Dann wirst du auch merken, dass die FRITZ!Box sehr lange braucht, um diese Liste aufzubauen (kannst ja auch gleich mal die CPU-Auslastung der FRITZ!Box beobachten).

Weiters wird bei Einsatz des TSB-LCR nach jedem Neustart des telefond augenscheinlich die Verbindung zur Port 1012-Schnittstelle verloren.
Tja, der Port 1012 wird eben vom telefond geöffnet und mit Daten versorgt. Wenn der telefond neugestartet wird, merkt JFritz (noch) nicht, dass die Verbindung unterbrochen wurde und baut auch keine neue Verbindung mehr auf.

1. Windows: "javaw" lastet während eines solchen Anruflisten-Updates auf der oben geschilderten Maschine die CPU lt. Task-Manager zu 94-98% aus -
Ja, das ist ein echtes Manko. Dafür entschuldige ich mich auch. Wer aber den Tip mit dem Löschen der Anrufliste befolgt, kann damit zurechtkommen.

2. Fritz!Box: Der Load Index (für 1 bzw. 5 Minuten) geht bei nur einem gleichzeitigen Telefonat (ohne weitere Inet-Aktivität) während solcher Anruflisten-Updates seitens JFritz hoch bis auf 1.29! (1 wäre 100% CPU-Last)
Darauf hat JFritz keinen Einfluss. Siehe Erklärung weiter oben.


Langsam beginne ich zu ahnen, warum JFritz (zugunsten etwas Besserem, hoffe ich) nicht weiterentwickelt werden soll...
Richtig. Besser wird es. CPU-Auslastung ist zwar auch noch 100%, aber nur weil ich keine unnötigen Ressourcen verschwenden will. Sobald andere Anwendungen die CPU brauchen, gibt der Nachfolger die CPU auch wieder frei.
Leider bleibe ich noch bei JAVA => Speicherfresser wird das Programm dennoch bleiben. 40-60 MByte RAM wird man dafür schon noch brauchen.

Grüße,
Robert
 
robot_cap schrieb:
Erster Tip: Lösche ab und zu die Anrufliste auf der FritzBox, dann geht es viel schneller.
Zweiter Tip: Du kannst das ja abstellen, dass nach jedem Gesprächsende die Anrufliste aktualisiert ist. Dafür kann man ja das Häckchen setzen / entfernen.

1. Ist mir klar, aber genau das will ich ja nicht! Ich möchte Monatslisten (und diese auch vom LCR angezeigt bekommen mit Summierung). Ohne "Zusatzprogramme" hatte ich früher oft bis zu 3,4 Monaten drin, ehe sie mal gelöscht wurde. Zugegeben, auch das AVM'sche Web-Interface ist da grauslich. Für diese Listen-Geschichte müsste ursächlich seitens AVM wohl was getan werden...

2. Auch klar, aber gerade das machte JFritz interessant für mich: Übersicht automatisch, ohne manuelle Updates machen zu müssen.

Halt leider in meiner "Wunsch-Kombination" wohl so (erstmal) nicht realisierbar - werde also folglich auf JFritz verzichten (obwohl es sehr schöne features hat), bis es etwas Besseres gibt.

Trotzdem vielen Dank für die Mühe, die da reingeflossen ist und noch reinfließt!
 
Um eine Lanze zu brechen: Ich finde es trotzdem super !
Und Shareware ist es auch noch... da kann ich auch mal einen Moment warten (ok ich habe einen fast neuen Rechner...mit 3,viel Mhz)
 
Moonbase schrieb:
1. Ist mir klar, aber genau das will ich ja nicht! Ich möchte Monatslisten (und diese auch vom LCR angezeigt bekommen mit Summierung). Ohne "Zusatzprogramme" hatte ich früher oft bis zu 3,4 Monaten drin, ehe sie mal gelöscht wurde. Zugegeben, auch das AVM'sche Web-Interface ist da grauslich. Für diese Listen-Geschichte müsste ursächlich seitens AVM wohl was getan werden...
Ich glaube, du verstehst mich falsch. Du sollst immer wieder mal die Anrufliste auf der FritzBox löschen. Die Anrufliste in JFritz bleibt ja dabei erhalten. Ich habe alle meine Anrufe seit dem Mai noch in JFritz drin. Du speicherst somit alle Anrufe auf deinem Computer. Auf der FritzBox kannst du die Anrufdaten dann löschen.

2. Auch klar, aber gerade das machte JFritz interessant für mich: Übersicht automatisch, ohne manuelle Updates machen zu müssen.
Auch das klappt ja mit dem Timer. Du kannst den Timer von 1-120 Minuten einstellen. Läuft die Zeit ab, holt JFritz die Anrufe von der FritzBox ab. Also könntest du den Haken bei "Anrufe nach dem Auflegen abholen" entfernen und würdest immer noch automatisch eine aktuelle Liste bekommen.

Grüße,
Robert
 
chain schrieb:
Um eine Lanze zu brechen: Ich finde es trotzdem super !
Danke.
Und Shareware ist es auch noch...
FALSCH. Das Programm ist keine Shareware. Keiner muss etwas dafür bezahlen. Es ist Freeware. Es ist kostenlos und darf kostenlos weiterkopiert werden.

Über Spenden freuen wir uns aber trotzdem.
 
Also JFritz läuft bei mir auf einem AMD Athlon 1800 XP unter Linux. Und von der Geschwindigkeit her, ist es ganz passabel. Und für die Anruflistenspeicherung habe ich einen Server, der via ISDN-Karte mit der Fritzbox verbunden ist. Und auf diesem Server werden die Anrufe in eine SQL-DB gespeichert. ISDN4Linux kann man dahingehend konfigurieren. Vielleicht gibt es ja sowas ähnliches für Windows.

Bye Michael
 
robot_rap schrieb:
Ich glaube, du verstehst mich falsch. [...]
Oder Du mich?

Ich soll die Anrufliste in der FB löschen, möchte genau dies aber nicht.

Ich soll den Timer statt der "Sofort-Info nach Anruf" benutzen, möchte aber gleich informiert werden. (Und somit ein eingebautes Feature auch gern nutzen.)

Beides funktioniert zwar, sind aber nur "Krücken", um die Last zu vermeiden/zu verteilen. Und mit "Timer" bekomme ich halt meine Gesprächs-Störungen dann alle x Minuten...

So halt einfach nicht brauchbar für mich. Fertich. Nichtsdestotrotz ein schöner Ansatz.

Glaube, ich werde (falls ich die Zeit finde), mal eher in Richtung von Tuxi's Ansatz forschen: mySQL müsste man mit den Daten aus der Port 1012-Schnittstelle füttern... Einen Rechner hab ich eh im Netz hängen... Und man könnte nette Auswertungen und ggfs. Webseiten mit PHP draus machen.

Aber auch das wird das Problem der mit der Zeit "volllaufenden" Anrufliste und deren langsamer Anzeige (auch beim AVM Webinterface) natürlich nicht lösen.

Danke für Deine Mühe, Robert, mich doch noch zu begeistern - ich werde sicher den Ansatz JFritz verfolgen und mal gespannt sein, was Du/Ihr noch als interessante Alternative bringen werdet!
 
robot_rap schrieb:
CPU-Auslastung ist zwar auch noch 100%, aber nur weil ich keine unnötigen Ressourcen verschwenden will. Sobald andere Anwendungen die CPU brauchen, gibt der Nachfolger die CPU auch wieder frei.
Leider bleibe ich noch bei JAVA => Speicherfresser wird das Programm dennoch bleiben. 40-60 MByte RAM wird man dafür schon noch brauchen.
Bei mir zur Zeit selten (nie?) mehr als 28 MB.
 
Ok, dann habe ich dich falsch verstanden. Tut mir leid.

Robert
 
Die Lösung ?!

Ich freue mich sehr über die Existenz des Programmes!
Trotzdem hat Moonbase natürlich nicht unrecht mit seiner Kritik. Ich habe (fast) das gleiche Probem, aber auch schon eine Idee für den Lösungsansatz:

- Ich lasse mir per Push-Mail des Nachts die Anrufliste senden (Datensicherheit und wenn ich auf Reise bin kann ich nachschauen)
- danach können die Daten von der Fritzbox gelöscht werden

-> Problem habe es mit "jfritz.exe -f" im Taskplaner versucht. Klappt aber leider nicht. Schon der Aufruf ist nicht erfolgreich über die Eingabeaufforderung.

Variante 2 wäre eine Implementierung nur die letzten 20 (oder x) Anrufe abzuholen oder ein löschen bis auf die neusten 20 (oder x) Anrufe.

Freue mich auf Eure Hilfe und bedanke mich herzlich
 
Resourcen-Fressen nicht nötig

Warum holt JFritz die Liste nicht einfach als CVS-Datei von der Fritz-Box?
Ich mache das hier bei mir momentan genau so, und es geht mind. um Faktor 10 schneller.
Die Box bietet dies doch extra an, und der Aufwand ist relativ gering.
Und dann, wenn Änderungen an der Box vorgenommen werden, kann man die Variablen, (Tel-ID's, Nummern, usw.) immer noch mal neu Einlesen.

Ich habe dies Jfritz mal ausprobiert, sorry aber das ist wirklich inakzeptabel....
 
JFritz holt die CVS Liste ab. Vorher muss aber einmal die Anrufe Seite aufgerufen werden, sonst ist die Liste nicht aktuell.
Was du in deiner Argumentation vergisst, ist, dass danach alle Anrufe geparst werden müssen und dann muss geschaut werden, welche Anrufe schon vorhanden sind! Und wer weiß, wie lang deine Liste ist...

Du musst JFritz ja nicht benutzen, wenn es inakzeptabel ist. Da es die Möglichkeit gibt, die Anrufe nach jedem beendeten Gespräch abholen zu alssen, merkt man nix davon dass es lange dauert, aber die Liste ist trotzdem jederzeit aktuell.
 
Musenbaron schrieb:
-> Problem habe es mit "jfritz.exe -f" im Taskplaner versucht. Klappt aber leider nicht. Schon der Aufruf ist nicht erfolgreich über die Eingabeaufforderung.
Ich würde es mit C:\Programme\jfritz\jfritz.jar -f oder javaw -jar C:\Programme\jfritz\jfritz.jar -f probieren, Pfade natürlich anpassen.
 
Musenbaron schrieb:
Variante 2 wäre eine Implementierung nur die letzten 20 (oder x) Anrufe abzuholen
Das klappt nicht. Wir kommen nur per HTML-Oberfläche oder CVS an die Anrufdaten ran. Somit bekommen wir immer die volle Liste ab.

Musenbaron schrieb:
oder ein löschen bis auf die neusten 20 (oder x) Anrufe.
Das funktioniert auch nicht, weil die FritzBox keine Funktionen dafür bereitstellt. Wir können immer nur die gesamte Liste löschen.


Robert
 
kleinc schrieb:
JFritz holt die CVS Liste ab. Vorher muss aber einmal die Anrufe Seite aufgerufen werden, sonst ist die Liste nicht aktuell.
Was du in deiner Argumentation vergisst, ist, dass danach alle Anrufe geparst werden müssen und dann muss geschaut werden, welche Anrufe schon vorhanden sind! Und wer weiß, wie lang deine Liste ist...

Du musst JFritz ja nicht benutzen, wenn es inakzeptabel ist. Da es die Möglichkeit gibt, die Anrufe nach jedem beendeten Gespräch abholen zu alssen, merkt man nix davon dass es lange dauert, aber die Liste ist trotzdem jederzeit aktuell.

Sorry, das war nicht irgend wie bös gemeint, ist halt meine meinung,
Also ich mache es momentan so, (Client-Server-Lösung).
Hole mir die Liste beim Programmstart einmalig (momentan 635 Einträge).
Die hau ich in die DB, aber nur die, die es noch nicht gibt, (eindeutiger Index)
Den Rest, also die Anrufe, abgehend oder einkommend, schreib ich ebenfalls in die DB, somit ist sie immer aktuell, da ein eingehender, oder ausgehender Anruf immer sofort gespeichert wird.
 
Damit ist doch auch völlig klar, warum das 100 mal schneller ist, oder?
Du vergleichst Äpfel mit Birnen.
Die Prüfung über den eindeutigen Index in der DB, ob schon vorhanden, ist natürlich um ein Vielfaches schneller als das Vergleichen von Call-Objekten in Java. Das ist doch einer der Vorteile einer DB: Die kan viel, und das alles sauschnell. Aber nicht jeder will gleich einen SQL-Server mit installieren!

eindeutiger Index
Hast du den Index über alle Spalten gebildet? und selbst das ist ja nicht 100% eindeutig.

Den Rest, also die Anrufe, abgehend oder einkommend, schreib ich ebenfalls in die DB, somit ist sie immer aktuell, da ein eingehender, oder ausgehender Anruf immer sofort gespeichert wird.
Dann fehlt dir aber die Anrufdauer, oder meinst du erst nach beendetem Gespräch?
 
wieso liegen die Daten jetzt im Java-Verzeichnis?

kleinc schrieb:
Ich würde es mit C:\Programme\jfritz\jfritz.jar -f oder javaw -jar C:\Programme\jfritz\jfritz.jar -f probieren, Pfade natürlich anpassen.
Also mit dem Aufruf "C:\Programme\Java\jre1.5.0_06\bin\javaw.exe -jar C:\Programme\jfritz\jfritz.jar" kann ich das Programm starten. Komischerweise werden dann aber die Daten jetzt im Java-Verzeichnis abgelegt. Und viel wichtiger, beim Start mit dem Parameter "-f" kommt die Eieruhr, aber die Daten werden nicht gelöscht.
 
Lösch die Daten, mach eine Verknüpfung mit obigem, Befehl und stell als Arbeitsverzeichnis in der Verknüfung das jfritz-Verzeichnis ein, dann passt es.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.