AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?
Thema durchsuchen
Ansicht
Themen-Optionen

Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

Ein Thema von Astobix · begonnen am 25. Nov 2013 · letzter Beitrag vom 26. Nov 2013
Antwort Antwort
Seite 3 von 3     123   
Popov
(Gast)

n/a Beiträge
 
#21

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 25. Nov 2013, 23:40
Wieso? Weil nach dieser Idee das Programm sich der Auslastung anpasst?

Betrachten wir die Natur. Was passiert wenn der Mensch nicht genug Nahrung bekommt? Ok, er nimmt ab, aber was passiert vorher? Der Körper stellt sich drauf ein (liest man oft) und nutzt die vorhandene Nahrung effizienter aus. Hört sich hoch interessanter an, fast so, als ob der Körper aus 1 Joule 2 machen könnte. Geht natürlich nicht, aber wie geht sonst? Ganz einfach, der Körper wird träge. So verbrennt er weniger Kalorien. Der Körper passt sich den Gegebenheiten an, also durch die Brust ins Auge?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 26. Nov 2013, 00:12
Ich verstehe es aber auch noch nicht so ganz.

Ich kenne es eigentlich auch entweder nur so, dass es einfach langsamer wird wenn die Frames nicht mehr schnell genug berechnet werden können (eher ungewöhnlich, kommt aber durchaus vor) - Oder Dinge wie Benutzereingaben, Physik, Wegfindung usw laufen vom Grafikrendering getrennt. Wenn ein Bild nun 60, 70 ms dauert, meinetwegen. Aber deswegen kann bsp. die Netzwerkkommunikation oder KI doch nicht immer auf die Grafik warten.

Was aber natürlich vorkommt (leider zu selten) ist eine Anpassung des Detailgrads wie verschiede LOD-Stufen, Sichtweite oder auch gröber arbeitende KI wenn die FPS in den Keller gehen.


Wäre es, im konkreten Spaceshooter-Beispiel in Delphi denn tragbar, das Bitmap-Pinseln in einen Thread auszulagern während der VCL-Hauptthread sich 60 mal in der Sekunde das zuletzt gerenderte Bitmap anschaut und evtl auf das Formular pinselt? Oder vielleicht auch nur für tolle Grafikeffekte - Explosions-Sprites müssen ja nicht mit der gleichen Geschwindigkeit animiert und über das fertige Bild gelegt werden wie die fliegenden Raumschiffe und der Spieler...
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#23

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 26. Nov 2013, 01:17
Das war nur ein Ansatz, nicht die Lösung. Kann jeder machen wie er will.

Und für die Bastler - wer Lust hat kann diesen "Bildschirmschoner" optimieren. Er ist zu langsam
Angehängte Dateien
Dateityp: zip CanvasBsp.zip (2,9 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#24

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 26. Nov 2013, 10:20
Timer.Interval:=16;
const speed = 72;

Ergebnis im Anhang.
Im 2.Anhang:
const speed = 100;
MIN (mein Wert:27) und MAX (mein Wert:142) hinzugefügt,
Caption verbessert.
Angehängte Dateien
Dateityp: zip Project1-16-72.zip (251,1 KB, 9x aufgerufen)
Dateityp: zip Project1-16-100.zip (251,2 KB, 2x aufgerufen)

Geändert von hathor (26. Nov 2013 um 12:54 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 26. Nov 2013, 10:35
Meine Augen

Das jetzt noch zweifach im Anagylph-Verfahren rendern für den 3D-Effekt und wer dann am längsten ohne epileptischen Anfall bleibt hat gewonnen
Miniaturansicht angehängter Grafiken
3d-brille-anaglyph-rot-blau.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#26

AW: Programm verbraucht zuviel Prozessorleistung - Wie kann ich Lag verhindern?

  Alt 26. Nov 2013, 10:39
Ich würde nicht davon ausgehen, daß ein TTimer genau läuft.
Diese Messages sind quasi niedrig Priorisiert.

Ist das Programm/System ausgelastet, dann sind die Timer es, welche praktisch als erstes keine Messages mehr rausgeben.
Außerdem werden sie nur via PostMessage in die MessageQueue eingereiht, als selbst wenn sie pünktlich rausgehen, werden sie nicht sofort abgearbeitet.
Dauert die Abarbeitung länger, dann werden neue Messages nicht rausgegeben, solange noch Eine in der Queue steckt, was dann für fehlende Zeit sorgt, wenn man die Spielgeschwindigkeit an den Takt der Messages hängt. Und auf langsameren rechnern, welche die einzelnen Messages nicht schnellgenug verarbeiten, wird es dann, wie schon mitbekommen, auch noch langsamer.

Wenn man den zeitlichen Ablauf wirklich an einen zeit-synchronen Zähler (Uhrzeit oder Counter ala GetTickCount oder schnellerere MultiMediaTimer) hängt und die Wegstrecke nicht von der Verarbeitungsgeschwindigkeit, sondern von der Uhrzeit abhängig macht, dann ist es egal, ob der Rechner 500 oder nur 2 FPS schafft ... die Wegstrecke ist dann praktisch gleich. (vorausgesetzt die Wegstrecke ist entsprechend vorhersehbar, bzw. nachberechenbar)

So könnte man dann über Pausen zwischen den Verarbeitungen auch die CPU-Auslastung steuern, bzw. die überlastete CPU regelt das von selber runter, ohne daß es in einer Zeitlupe endet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz