Seite 3 von 4

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 11:44
von Fluid Byte
NicTheQuick hat geschrieben:Mal eine Frage aus einer anderen Richtung: Wieso muss es so schnell gehen? Ist es zeitkritisch oder ist dir das nur so nebenbei aufgefallen?
Ist nicht zeitkritisch das ist aber nicht wirklich von Relevanz denn die Zeiten bleiben brutal schlecht.
NicTheQuick hat geschrieben:Hast du eine vergleichbare Applikation, bei der es wesentlich schneller geht, sodass man mit Sicherheit sagen kann, dass es irgendwie an Purebasic liegt?
Nein, aber jeder der hier gepostet hat bekommt deutlich bessere Zeiten auf älterer Hardware und bestätigt meinen Verdacht.
STARGÅTE hat geschrieben: bei mir sind es 16ms.
Mit DirectX11 sind es 27ms und
mit OpenGL sind es zB zwischen 230 und 430ms
Auch wenn ich lange nicht mehr mit PB gearbeitet habe weiß ich dass es nie so lange gedauert hat nur um einen Screen zu öffnen.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 11:57
von NicTheQuick
Auf dem kleinen i3 hier auf der Arbeit ohne dedizierte Grafikkarte dauert es ca. 115 ms bei OpenGL und 9 ms mit DirectX.

Kann es vielleicht damit zu tun haben, dass die Treiber deiner Grafikkarte einfach länger brauchen bis sie geladen sind? Da steckt ja etwas mehr dahinter als wenn man die in der CPU integrierte Grafik nutzt.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 16:58
von ccode_new
Bei mir sind es bei deinem Beispiel 14 ms im Mittelwert aus 10 Messungen.

Mich würde interessieren welche Werte du nur beim öffnen des Fensters (nicht Screen) bekommst.

Also:

Code: Alles auswählen

InitSprite()

z1 = ElapsedMilliseconds()
ok = OpenWindow(0,0,0,1280,720,"",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
z2 = ElapsedMilliseconds()

ok2 = OpenWindowedScreen(WindowID(0),0,0,WindowWidth(0),WindowHeight(0))
MessageRequester("Time passed", Str(z2 - z1) + " ms")
Debug ok
Vielleicht liegt es ja wirklich an den Treibern.
Wird hier für eine höhere Leistung mehr vorgeladen ?

Mich würden echte Performance-Tests interessieren.

....
Unter Windows (mit DX) sind es im Durchschnitt 60 ms.

Ich habe jetzt aber mal das PureBasic-Programm und gleichzeitig die NVidia-Systemsteuerung geöffnet.
Das Ergebnis: Das PB-Fenster ist eingefroren und die MsgBox hat mir 26043 ms angezeigt.

Ich möchte damit sagen: Vielleicht läuft bei dir irgend ein Hintergrundprozess der die Geschwindigkeit ausbremst.

Ach so noch etwas:

Also:
Unter Linux (OpenGL): ca. 14 ms
Unter Windows (DX): ca. 60 ms
Unter Windows (Subsystem: opengl): ca. 1500 ms (höchster Wert 3867 ms)

Also OpenGL versagt (mit dieser Performance) unter Windows bei mir vollkommen.

System:
CPU: Intel(R) Core(TM) i5-3230M CPU @2.60GHz
RAM: 8,00 GB (7,71 verwendbar)
OS: 64-Bit Windows 10 Pro
OS: Linux Ubuntu Mate 16.04 LTS
GPU(s): Intel(R) HD Graphics 4000 / NVIDIA GeForce 710M

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 19:40
von STARGÅTE
Hast du schon mal geguckt ob vllt NVIDIA oder ´dieses Geforce-Experience in der PureBasic Applikation "rumfuscht"?

Hast du diese lange Ladezeit auch wenn du einen FullScreen öffnest?

PS: Das OpenGL Subsystem hat bei mir schon "immer" längere Ladezeiten verursacht.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 22.06.2017 11:46
von Fluid Byte
STARGÅTE hat geschrieben:Hast du schon mal geguckt ob vllt NVIDIA oder ´dieses Geforce-Experience in der PureBasic Applikation "rumfuscht"?
Tut es nicht.
STARGÅTE hat geschrieben:Hast du diese lange Ladezeit auch wenn du einen FullScreen öffnest?
Da dauert es knapp 1 Sekunde.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 22.06.2017 17:48
von ccode_new
Wenn deine restliche Performance stimmt, würde ich mich nicht an dieser einen Sache festkrallen.
Es ist eben so.
Wie schaut den der Wert bei OpenGl aus ?

Ansonsten kannst du ja mal ne Liste deiner laufenden Hindergrundprozesse/-programme posten.
Vielleicht fällt etwas auffälliges auf.

Hast du eigentlich schon mal Linux probiert ?
Mich persönlich würde einfach aus Interesse dein Wert unter Linux interessieren. (Auf gleicher HW natürlich)

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 22.06.2017 18:55
von NicTheQuick
Sind noch andere Programme am Laufen, die vielleicht auch Gebrauch von der Grafikkarte machen? Zum Beispiel Videos in. Firefox?

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 22.06.2017 19:07
von _JON_
Was ist den mit der Auflösung?
Würde mich nicht wundern das FullHD und z.B. 4K+ ein Unterschied machen.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 17.08.2017 09:35
von Fluid Byte
Es gibt also keine Lösung für das Problem momentan. Werde wohl mit dieser beschissenen Verzögerung leben müssen ...

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 22.08.2017 03:36
von X0r
The absolute value returned is of no use since it varies depending on the operating system. Instead, this function should be used to calculate time differences between multiple ElapsedMilliseconds() calls.
Wieso machst du es dann nicht so in deinem ersten Post?