Codeoptimierung
Verfasst: 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...
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...