Codeoptimierung

Antworten
skaterkarlo
Beiträge: 279
Registriert: 13.07.2010, 16:58

Codeoptimierung

Beitrag von skaterkarlo » 26.08.2012, 16:24

hallo ralf,
habe schon des öfteren festgestellt wenn DVR HD 2 läuft das es während der Verarbeitung zu 4000 und mehr Seitenfehlern/min kommt.Allein beim nach dem Beenden des Brennvorgangs und Einblendung der Meldung ob die temp. Dateien gelöscht werden können, kommt es zu über 100 Seitenfehlern. Habe kein anderes Programm was dermaßen viele Seitenfehler produziert.
Microsoft schreibt dazu "Ein CPU-Cachezugriff beansprucht im Programm 10–20 Taktzyklen.Ein externer Cachezugriff kann 20–40 Taktzyklen beanspruchen.Ein Seitenfehler beansprucht eine Million Taktzyklen (vorausgesetzt, ein Prozessor verarbeitet 500 Millionen Anweisungen pro Sekunde und einen Seitenfehler in 2 Millisekunden).Daher liegt es im Sinne einer optimalen Programmausführung, Code zu schreiben, der die Anzahl der erfolglosen Cachezugriffe und Seitenfehler möglichst gering hält."
und weiter
Ein Grund für die Langsamkeit von Programmen besteht darin, dass sie häufiger Seitenfehler oder erfolglose Cachezugriffe verursachen.Um dies zu verhindern, ist es wichtig, Datenstrukturen mit weitgehend lokalen Verweisen zu verwenden – also Datenstrukturen, die zusammenhängende Elemente auch zusammenhalten.Eine auf den ersten Blick durchdachte Datenstruktur kann sich als ausgesprochen schlecht erweisen, weil sie nicht nur lokale Verweise enthält, manchmal trifft jedoch genau das Gegenteil zu.

Wenn man jetzt die Rechnung aufstellt 4000x60 (bei einer Bearbeitungszeit von 1 Std. bei BD keine Seltenheit)kommt ein großes Optimierungspotential zu Stande. Hoffe ich konnte damit eine Anregung geben.
Gruß skaterkarlo...
Win 10 64bit ( i7,16 GB Ram), HD Studio 3, Recode, HD Studio 2, Compress, DVR Provider, DVR Capture 2, Gigablue Quad HD, Egreat R300 S.
skaterkarlo
Beiträge: 279
Registriert: 13.07.2010, 16:58

Re: Codeoptimierung

Beitrag von skaterkarlo » 26.08.2012, 18:01

ergänzend dazu muss ich sagen das diese vorher beschriebenen Seitenfehler sich bei einem Zugriff auf eine USB- SSD Festplatte beziehen. Gehe ich von anderen externen FP aus so ergibt sich eine Seitenfehlerzahl von 16.000/min und mehr.
Gruss skaterkarlo...
Win 10 64bit ( i7,16 GB Ram), HD Studio 3, Recode, HD Studio 2, Compress, DVR Provider, DVR Capture 2, Gigablue Quad HD, Egreat R300 S.
Benutzeravatar
Tobias
Programmierer
Beiträge: 868
Registriert: 31.03.2008, 22:59

Re: Codeoptimierung

Beitrag von Tobias » 27.08.2012, 11:18

Hallo skaterkarlo,

in meinen Tests kam ein Großteil der Seitenfehler beim Starten der Anwendung und beim öffnen von neuen Fenstern.
Hier scheint die .net Laufzeitumgebung einige zu verursachen, dass konnte ich mit einem anderen .net Tool ebenfalls nachstellen aber an der Stelle absolut unkritisch.

Macht man nur eine Fehlersuche, dann steigen die Fehler nach dem öffnen der Fenster bei mir nicht mehr an.
Beim Schreibvorgang (also zum Beispiel TS-Export) steigen Sie zwar aber im nicht all zu schnell. Das das bei dir bei einer SSD natürlich schneller steigt ist klar.

Wir werden prüfen, ob wir hier beim Schreibvorgang noch was optimieren können oder ob diese direkt von der .net Laufzeitumgebung verursacht werden (dann können wir natürlich nichts ändern).
MfG
Tobias
skaterkarlo
Beiträge: 279
Registriert: 13.07.2010, 16:58

Re: Codeoptimierung

Beitrag von skaterkarlo » 27.08.2012, 20:11

Hallo Tobias,
danke das du mir darauf geantwortet hast.
Tobias hat geschrieben: in meinen Tests kam ein Großteil der Seitenfehler beim Starten der Anwendung und beim öffnen von neuen Fenstern.
Hier scheint die .net Laufzeitumgebung einige zu verursachen, dass konnte ich mit einem anderen .net Tool ebenfalls nachstellen aber an der Stelle absolut unkritisch.
kann ich bestätigen betraf meinen ersten Post, aber was heißt an anderer Stelle absolut unkritisch?
Jeder setzt doch einen schnellen Start des Programms voraus...
ebenfalls schrieb ich in meinen Post das beim Verarbeiten (Authoring BD/AVCHD ) je nach FP 4000-16000 Seitenfehler in genau dieser Frequenz zustande kommen.
Der Zähler geht schnell hoch und steigert sich dann nur noch langsam, wie gesagt beim Authoring..
Tobias hat geschrieben:
Wir werden prüfen, ob wir hier beim Schreibvorgang noch was optimieren können oder ob diese direkt von der .net Laufzeitumgebung verursacht werden (dann können wir natürlich nichts ändern).
Nachdem ich auf der Microsoft Homepage bei Seitenfehlern fündig geworden bin, lese ich aus der Aussage "Fehler bei der Codeoptimierung in einer Framework Umgebung" heraus oder sollte ich das "Falsch verstehen".
Gruss skaterkarlo...
Win 10 64bit ( i7,16 GB Ram), HD Studio 3, Recode, HD Studio 2, Compress, DVR Provider, DVR Capture 2, Gigablue Quad HD, Egreat R300 S.
Benutzeravatar
Ralf
Inhaber HS
Beiträge: 10812
Registriert: 13.08.2005, 15:23

Re: Codeoptimierung

Beitrag von Ralf » 28.08.2012, 11:17

Hallo skaterkarlo,

ich würde Vorschlagen, Du lädst Dir mal das VisualStudio von Microsoft. Es ist vergleichbar mit einem Lego Baukasten, wo Dir tausende kleine individuell Steinchen zur Verfügung stehen. Es ist der Fantasie des Entwicklers überlassen, daraus ein Kunstwerk zu schaffen oder ein kleinen Häuschen. Tatsache ist aber, dass wir auf das einzelne Steinchen gesehen keinen Einfluss haben.
Alleine beim Start der Anwendung entstehen schon tausende dieser Meldungen. Zu dem Zeitpunkt verarbeiten wir noch nichts.
Ich kann Dir versichern, dass wir im Rahmen des Möglichen einen sauberen Code haben.

Diese Diskussion bringt uns gemeinsam nicht weiter, denn wir können es nicht ändern. Bitte belassen wir es dabei.
Mit freundlichen Grüßen

Ralf

Gehe zu Facebook...
Über ein “Like” würden wir uns sehr freuen.
Bild
Antworten

Zurück zu „Sonstiges...“