Aktuelle Zeit: 24.05.2019 09:28

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 10.02.2019 11:48 
Offline

Registriert: 09.02.2017 13:54
Hallo,
Ich fülle ein Listicongadget mit 600 Spalten und etwa 400 Zeilen über den üblichen Weg mit addgadgetitem.
Das ganze braucht mit Linux fast 3 Minuten!
Führe ich den absolut gleichen Code mit Windows aus braucht das ganze noch nicht einmal 1 Sekunde.
Ich vermute, dass dieses sehr unterschiedliche Verhalten an der Nutzung von Qt bzw. GTK durch Pb in Linux liegt. Evtl. greift Pb in Windows nur auf dessen Api zu.
Am Code liegt es nicht. Der Flaschenhals ist definitiv das Gadget.
Wenn jemand mehr dazu weiß wäre das toll.
Mit Gambas über ein Grid habe ich die gleiche Performance wie Pb über Windows. Gambas nutzt GTK.
Das Verhalten in Linux ist unabhängig von der Ubuntu Distri. Ich habe es mit verschiedenen Lubuntu, Kubuntu und Mint Versionen getestet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 10.02.2019 12:37 
Offline

Registriert: 21.01.2008 19:11
Hallo!

Ich nutze kein Linux, aber hast Du einmal probiert, während des Befüllens
das Gadget mittels HideGadget() zu deaktivieren, damit nicht bei jedem
neuen Eintrag das Gadget aktualisiert wird?
Vielleicht gibt es bei Linux ein Gegenstück zu
SendMessage_(GadgetID(#List), #WM_SETREDRAW, #False, 0) bzw.
SendMessage_(GadgetID(#List), #WM_SETREDRAW, #True, 0)
um das aktualisieren aus-/einzuschalten.
Das benutze ich bei Windows in solchen Fällen.

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 10.02.2019 14:32 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
Code:
columsCount  = 600
itemsCount = 400

If OpenWindow(0, 100, 100, 1000, 500, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(0, 5, 5, 1000, 500, "1", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
 
  ; Spalten hinzufügen
  For i = 2 To columsCount ; Start bei "2", weil ja bereits eine Spalte existiert
    AddGadgetColumn(0, i, Str(i), 100)
  Next
 
  ; Liste füllen
  HideGadget(0, #True)
  DisableGadget(0, #True)
  For i = 1 To itemsCount
    item$ = ""
    For x = 1 To columsCount
      If item$ <> ""
        item$ + Chr(10)
      EndIf
      item$ + "Entry_" + Str(i) + "/" + Str(x)
    Next
    AddGadgetItem(0, -1, item$)
  Next
  DisableGadget(0, #False)
  HideGadget(0, #False)
 
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
 
EndIf
@kmais: Es wäre schön gewesen, wenn du so ein Code zum Testen bereitgestellt hättest.

GTK-3: 2 Minuten (durch HideGadget() oder DisableGadget() wird es nicht besser)
GTK-2: 6 Sekunden
QT: 2 Sekunden

Eine Lösung für das langsame Befüllen unter GTK-3 habe ich leider nicht.

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 10.02.2019 21:29 
Offline

Registriert: 09.02.2017 13:54
He, danke schön.
Ich wusste es !!!!
Ich habs jetzt mit GTK2 als Subsystem getestet - 3,2 sek. Super!!! Das ist doch schon etwas ganz anderes.

Meinen Code habe ich nicht gepostet, weil die Daten aus einer Datenbank stammen. Das Füllen geschieht über addgadgetitem ohne irgendetwas besonderem vorher oder nachher :-). Da ist einfach nichts. Und Windows bekommt exakt den gleichen Code.
Es liegt definitiv an den verwendeten Libraries.

Jetzt habe ich doch noch eine Frage.
GTK2 ist bei mir schon im Subsystem drinnen, PB 5.7.
Wie bekomme ich jetzt Qt rein? Also, welche Libraries und woher? Qt ist installiert.
Da brauche ich wirklich Unterstützung.

Aber vieeeeelen Dank für deinen Test.

Klaus-Peter


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 11.02.2019 00:42 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Habe ich bestimmt schon 100 mal irgendwo rein kopiert.

Mein Installations-Guide für Linux
Zitat:
Purebasic
---------
sudo apt-get install build-essential gcc g++

sudo apt-get install libxxf86vm-dev libxine2-dev unixodbc-dev libsdl1.2-dev libsdl2-dev

sudo apt-get install libgtk2.0-dev libgtk-3-dev libwebkitgtk-dev libwebkitgtk-3.0-dev libwebkit2gtk-4.0-dev


Subsystem qt
------------
sudo apt-get install qtbase5-dev qttools5-dev qtmultimedia5-dev qtdeclarative5-dev libqt5svg5-dev libqt5webkit5-dev libqt5multimedia5-plugins


Ubuntu Gnome 18.xx (For PB-IDE)
-------------------------------
sudo apt install libcanberra-gtk-module

Obsoleted
---------
;sudo apt-get install libgnome2-dev
;sudo apt-get install libgnomeprintui2.2-dev libxine-dev


Ubuntu missing default libs (Without developer packets)
-------------------------------------------------------
gtk2
- sudo apt-get install libgtk2.0
gtk3
- sudo apt-get install libwebkitgtk-3.0
qt
- sudo apt install qt5-default


_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Listicongadget sehr langsam bei der Darstellung
BeitragVerfasst: 11.02.2019 09:35 
Offline

Registriert: 09.02.2017 13:54
... und dennoch immer wieder schön ... :mrgreen:

Danke ... :allright:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye