Seite 2 von 4

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 20.06.2017 23:59
von Fluid Byte
Keiner von euch hat Recht, keiner von euch hat Unrecht. Allerdings sollten die Kandidaten die veraltete PB-Versionen nutzen und mir erzählen ich müsste in die Hilfe gucken mal in selbige reinschauen:
Syntax hat geschrieben:Returns the number of milliseconds that have elapsed since a specific time in the past.
Es liest also nicht explizit die Zeit seit Systemstart, sondern die eines "Ereignisses in der Vergangenheit". In meinem Fall der erste Aufruf von ElapsedMilliseconds().
Remarks hat geschrieben: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.

This function is relatively accurate: it may have a slight variation, depending on which operating system it is executed on, this is due to the fact that some systems have a lower timer resolution than others.
Zweimal in fett, die Ergebnisse sind unterschiedlich denn sie sind BETRIEBSSYSTEM-ABHÄNGIG.

Fakt ist und bleibt, die Startzeit ist bei mir immer 0 und immer bei 0.6 Sekunden. Ausnahmslos.

Und jetzt genug mit der Offtopic-Scheisse, zurück zum Thema bitte.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 00:19
von ccode_new
Okay, muß nicht genau 0 sein, besser man geht von einem Wert aus, den man als Differenz nehmen kann.
Sicher ist nur, das es nicht die GetTickTime API ist und das
Ergebnis ist ein Quad und kein Long!

Unter Windows scheint es aber immer 0 zu sein.
...und unter Linux einfach nur ein zufälliger Wert zwischen 0 und 1000 ?!

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 08:18
von STARGÅTE
bei mir sind es 16ms.

Welche Subsystem nutzt du denn?
Mit DirectX11 sind es 27ms und
mit OpenGL sind es zB zwischen 230 und 430ms

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 10:48
von Kurzer
Bei mir sind es 67 ms unter Win 10 x64 mit einer AMD 5350@2GHz CPU, 4 GB RAM und onboard Grafikkarte
Kann es ein, dass Du einen Virenscanner im Einsatz hast, der u.a. auch die Fenster von Programmen
scannt (also Screenshots macht) um daraus Hinweise auf das Programm zu bekommen? AVAST macht das
meines Wissens nach so (ich weiß nur nicht wie die Funktion heißt, mglw. "Screenscan").

Versuchs mal ohne Virenscanner.

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 11:26
von Fluid Byte
DirectX9 (Standard) / DirectX11 / OpenGL

Bild


Als Virenscanner nur "Windows Defender" welchen ich für den Test ausgeschaltet habe, kein Unterschied.

Diese Zeiten sind katastrophal ...

Re: OpenWindowedScreen() / OpenScreen() zu langsam

Verfasst: 21.06.2017 11:35
von NicTheQuick
Mal eine Frage aus einer anderen Richtung: Wieso muss es so schnell gehen? Ist es zeitkritisch oder ist dir das nur so nebenbei aufgefallen? Hast du eine vergleichbare Applikation, bei der es wesentlich schneller geht, sodass man mit Sicherheit sagen kann, dass es irgendwie an Purebasic liegt?

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.