Author Topic: Betaversion Brick Viewer mit PyQt5 und Python 3  (Read 9340 times)

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 132
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #15 on: February 23, 2019, 09:34:17 »
Kein Problem, hauptsache es funktioniert jetzt.

Gruß,
Erik

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #16 on: February 26, 2019, 15:15:18 »
Beta2 ist verfügbar, siehe ersten Post.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #17 on: February 26, 2019, 17:51:45 »
Das Starten auf meinem vServer dauert ein wenig. Ca. 15 Sekunden. Mal abgesehen von kraftvollen Desktop PC wird es wohl auch auf Raspberrys recht lang dauern.

Damit man das Programm nicht aus versehen in der Zeit ein zweites mal startet waere ein sofort erscheinendes Splash Logo evtl. gut?!

Es muss ja nicht gross sein und darf auch per default fehlen. Die Frage ist nur, wie schnell koennte es erscheinen, wenn eben der Rechner recht langsam ist.


Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #18 on: February 26, 2019, 19:15:14 »
Loetkolben, ist das jetzt neu mit Brick Viewer 2.4.0 oder war das schon immer so?

Ich würde da eher die Ladezeit verbessern wollen anstatt das mit einem Splash Screen zu kaschieren.

Ich vermute das steckt im Laden der Plugins. Test mal bitte wie es die Startzeit beeinflusst, wenn du das Laden der Plugins deaktivierst. Dazu in dieser Datei:

Code: [Select]
/usr/share/brickv/plugin_system/plugin_manager.py
Zeile 27 von:

Code: [Select]
from brickv.plugin_system.plugins import device_classes
auf

Code: [Select]
device_classes = []
ändern.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #19 on: February 26, 2019, 20:09:17 »
Hallo photron,

das liegt nicht wirklich an euch.  :D
Das war bisher auch schon so, aber es war nicht wichtig extra einen Thread dafuer aufzumachen, aber da ihr gerade am Brickviewer am arbeiten seit, dachte ich, dass ich das mal einwerfen koennte.

Es liegt am virtuellem System (vServer). Alle Zeiten von Hand zwei mal gestoppt. Das laden der plugins benoetigt also rund 1/3 Zeit mehr. Da nur das laden vom IO System (Wer weiss was die dahinter haben) so lange dauert, ist das eigentlich keine Baustelle von euch das zu optimieren.

Wenn aber mehrere User und/oder ihr der Meinung seit, da muesste man was aendern, dann faende ich das prima. Wegen mir alleine muss das nicht sein.  ;)

Meine Ergebnisse: vServer, Debian 9, 2 GB Ram

Code: [Select]
# Mit "from brickv.plugin_system.plugins import device_classes"
echo 1 > /proc/sys/vm/drop_caches # Memory Cache leeren
brickv
=> 21 Sekunden
# Beenden und dann neu starten (Kommt wohl aus dem Memory Cache)
brickv
=> 2 Sekunden


Code: [Select]
# Mit "device_classes = []"
echo 1 > /proc/sys/vm/drop_caches # Memory Cache leeren
brickv
=> 13 Sekunden
# Beenden und dann neu starten (Kommt wohl aus dem Memory Cache)
brickv
=> 1,5 Sekunden


Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #20 on: February 27, 2019, 15:28:39 »
Loetkolben, teste mal bitte diese Version. Die beinhaltet jetzt auch die .pyc Dateien. Das sollte die Startzeit verbessern:

http://download.tinkerforge.com/tools/brickv_pyqt5/beta2/linux/brickv-2.4.0_all_loetkolben.deb

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #21 on: February 27, 2019, 16:46:15 »
Hallo photron,

habe die Spezialversion installiert, einen Vorteil hat sie nicht gebracht.

Dreimal mit leeren Cache (echo 1 > drop_caches) gestartet:
19, 19, 27 Sekunden Startzeit. Woher die 27 Sekunden kommen weiss ich nicht.

Danach aus dem Cache gestartet: 1,5 Sekunden. Zeitmessung erfolgte durch Blick auf die Uhr.

Auch die mitgelieferten *.pyc Dateien haben keinen Vorteil gebracht, da ich davon ausgehe, dass weder die Rechenleistung (python precompile) noch das RAM (Start from Cache) das Problem darstellen. Das IO Subsystem kenne ich bei dem vServer nicht, wird aber hoechstwahrscheinlich ein HDD Raid mit gemeinsamen Zugriff sein.

Habt ihr den Brickviewer mal von einem NAS mit HDD oder einer lokalen HDD (jeweils mit leerem Memory Cache) gestartet, also ohne SSD? Bei den heutigen SSD als C: bzw. root Laufwerk ist IO Latenz ja kaum noch vorhanden.



BTW, meine Meinung/Erfahrung: Ich habe zwei gleiche Rechner (Dell Dualcore ca. 5 Jahre alt) einmal mit einer einfachen SSD und einmal mit einer HDD am laufen. Das starten von Windows ist alles noch halbwegs vergleichbar, aber bei Updates mit vielen kleinen Dateien (VLC, Sicherungspunkt setzen, Datentraegerbereinigung) hat man gerne die 4 bis 10 fache Zeit. Seit dem aufkommen der SSDs hat niemand mehr beim File IO etwas optimiert. :(
Fuer Heim PC und Laptops mit SSD ist das Problem gegessen, fuer Rechenzentrumsrechner die per SAN/NAS/iSCSI und/oder als Raid angebunden sind ist das Bumerang, bzw. wird durch caching minimiert. :o
Noch ein Beispiel vom vServer: Softmaker Textmaker: 10 zu 1 Sekunde.



Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #22 on: February 27, 2019, 18:42:16 »

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #23 on: February 28, 2019, 00:39:51 »
Hallo photron,
bin knapp in der Zeit. Tut nicht, da Import fehlt schlaegt. Siehe unten.
Fehler bei mir?

Code: [Select]
# dpkg -i brickv-2.4.0_all_loetkolben_2.deb
(Lese Datenbank ... 92974 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von brickv-2.4.0_all_loetkolben_2.deb ...
Entpacken von brickv (2.4.0) über (2.4.0) ...
brickv (2.4.0) wird eingerichtet ...
Trigger für gnome-menus (3.13.3-9) werden verarbeitet ...
Trigger für desktop-file-utils (0.23-1) werden verarbeitet ...
Trigger für mime-support (3.60) werden verarbeitet ...
## Alles ok, keine Fehler.


Code: [Select]
# brickv
Traceback (most recent call last):
  File "/usr/share/brickv/main.py", line 75, in <module>
    from PyQt5 import QtWebEngineWidgets
ImportError: cannot import name 'QtWebEngineWidgets'
## Tut nicht. Google "hochfahren"

Code: [Select]
# apt-get install python-pyqt5
[...]
The following additional packages will be installed:
  python-sip
Vorgeschlagene Pakete:
  python-pyqt5-dbg
Die folgenden NEUEN Pakete werden installiert:
  python-pyqt5 python-sip
[...}
python-sip (4.18.1+dfsg-2) wird eingerichtet ...
python-pyqt5 (5.7+dfsg-5) wird eingerichtet ...
## Passendes? Paket installiert?

Code: [Select]
# brickv
Traceback (most recent call last):
  File "/usr/share/brickv/main.py", line 75, in <module>
    from PyQt5 import QtWebEngineWidgets
ImportError: cannot import name 'QtWebEngineWidgets'
## Tut trotzdem nicht.


BTW: Bin heute in Nuernberg unterwegs. Evtl. dauern meine Rueckmeldungen.


Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #24 on: February 28, 2019, 11:58:54 »
Loetkolben, das ist ein Bug in der Version, auf deiner Seite ist alles okay. Hier eine korrigierte Version:

http://download.tinkerforge.com/tools/brickv_pyqt5/beta2/linux/brickv-2.4.0_all_loetkolben_3.deb

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #25 on: February 28, 2019, 19:46:29 »
Loetkolben, das ist ein Bug in der Version, auf deiner Seite ist alles okay.

Puh Glueck gehabt.  ;D

Der Splashscreen kommt nun. Sieht gigantisch aus.  ;D

Da ich im Zug unterwegs bin, muss ich die Zeitmessung mal ein wenig verschieben. Vielleicht messe ich nachher/morgen mal die Startzeiten und melde mich wieder.

Danke

Der Loetkolben

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #26 on: March 07, 2019, 01:09:34 »
Hier die versprochene Nachlieferung der Startzeiten:

Splash sichtbar:   9  12  10 Sekunden
brickv gestartet: 24  24  21 Sekunden

Ungefaehr nach der Haelfte der Zeit kommt der Splashscreen oder anders gesagt: Erst nach ca. 10 Sekunden.  ::)

Nach max. 2 Sekunden faende ich das gut.  ;D  Bei der Splashgroesse koennte man sich ggf. aufs Logo beschraenken? Bitte aber zuerst an "unser" AirQualityBricklet Problemchen denken. Solange kann es so bleiben.  ;)

Direkt aus dem Speicher startet der Brickviewer in ca. 2 Sekunden, wobei manchmal der Splashscreen nicht sichtbar ist.

Danke

Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #27 on: March 07, 2019, 09:16:10 »
Wir zeigen den Splashscreen schon so früh wie möglich an, da können wir nichts dran verbessern denke ich.

Ich hatte erst nur das Logo und fand das zu klein. Das bot dann auch nicht genug Platz, um unten Text anzuzeigen. Ich denke der Splashscreen wird so bleiben wie er jetzt ist.

Loetkolben

  • Hero Member
  • *****
  • Posts: 1.178
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #28 on: March 07, 2019, 16:10:24 »
Hallo photron,

danke fuer die Antworten und Informationen. Ich bin damit vollkommen einverstanden. :D
Gibt es denn einen Commandlineswitch um den Splashscreen ein-/auszuschalten?

Danke

Der Loetkolben

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.472
    • View Profile
Re: Betaversion Brick Viewer mit PyQt5 und Python 3
« Reply #29 on: March 22, 2019, 19:44:12 »