Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#207 closed Fehler (fixed)

Trend verbraucht Ressourcen

Reported by: Melanie Hermann Owned by: Melanie Hermann
Priority: kurzfristig Milestone:
Component: Gesamtsystem Version: ALLE
Severity: Fehler Keywords:
Cc:

Description (last modified by Melanie Hermann)

Der Trendscreen scheint in manchen Fällen immer noch Ressourcen zu verbrauchen.

  1. Testgerät in Butzbach läuft schon mehrere Tage fehlerfrei.
  2. Testgerät in Butzbach weißt nach ~ 1 Tag den Fehler auf.

Fehler äussert sich indem sich die Dialoge teilweise nicht mehr bedienen lassen. Der Trend wird ebenfalls gar nicht mehr angezeigt.

Info:

  • Freier Speicher bei Gerät mit Fehler: 14.606.336 Byte
  • SDCardImage der Gerätes wird bereitgestellt

TODO:

  • SDCardImage hier in Beindersheim aufspielen und testen
  • Zum Testen kann das Intervall wieder auf 1 Sek. gesetzt werden
  • Version mit TRACES erstellen und nach Butzbach geben, falls das Problem dort reproduzierbar ist

Change History (14)

comment:1 by Melanie Hermann, 12 years ago

Description: modified (diff)

comment:2 by Melanie Hermann, 12 years ago

1. Test:

  • SDCardImage aus Buztbach kopiert
  • Applikation wurde vom Debugger aus gestartet (V1.384-D-075)
  • CTrend::OnPaint() folgendermaßen abgeändert:
    void CTrend::OnPaint()
    {
      CPaintDC dc(this);
      for(;;)
        Draw(&dc);
    }
    
  • In diesem Test wurde die Funktion 232040 mal durchlaufen und es gab keine Probleme.
  • Auch der freie Speicher ist nicht weniger geworden. Aktuell: 28.176.384 Byte.
  • Fazit: Problem kommt vermutlich doch nicht aus CTrend::Draw().
  • HINWEIS: Werteauswahl war 0! Somit wurde DrawTrend() nie ausgeführt!
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:3 by Melanie Hermann, 12 years ago

Description: modified (diff)

comment:4 by Melanie Hermann, 12 years ago

2. Test:

  • SDCardImage aus Butzbach kopiert
  • ReleaseVersion erstellt mit Intervall = 1 Sek. (V1.384-075)
  • Fazit: Bisher, nach ~ 3h, keine Probleme feststellbar

comment:5 by Melanie Hermann, 12 years ago

3. Test:

  • Gerät, das die Probleme zeigt, wurde in Butzbach wieder gestartet
    • Gerät läuft seit Freitag, 22.11., Screen stand nicht auf Trend
    • Montag, 25.11. 08:00 Uhr, alles OK, freier Speicher > 24 MB
    • Screen wurde bei beiden GCs auf Trend gestellt
    • Montag, 25.11. 16:00 Uhr, alles OK, freier Speicher > 20 MB
    • anderer (guter) GC hat noch > 19 MB
    • Dienstag, 26.11. 08:00 Uhr, NOK, beide GCs freier Speicher > 14 MB
  • Fazit: Liegt zu 99,99% am Trend.
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:6 by Melanie Hermann, 12 years ago

4. Test:

  • Bin- und Config-Ordner auf den GC im Testrack kopiert und gestartet
  • Nötigste Einstellungen vorgenommen
    • Gerät läuft seit Freitag, 22.11. 16:00 Uhr, Screen stand nicht auf Trend
    • Montag, 25.11. 08:00 Uhr, alles OK, freier Speicher > 24 MB
    • Screen wurde auf Trend gestellt
    • Montag, 25.11. 16:00 Uhr, alles OK, freier Speicher > 20 MB
    • Dienstag, 26.11. 08:00 Uhr, NOK, freier Speicher > 15 MB, Trend steht
  • Fazit: Liegt zu 99,99% am Trend.
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:7 by Melanie Hermann, 12 years ago

5. Test: (identisch zu 1.Test)

Funktion Draw() in Endlosschleife ausführen lassen.
Start: 28.307.456 Byte frei
Nach 200.000 Durchläufen: 27.336.704 Byte frei

Normalerweise 1 Durchlauf pro Minute
200.000 Durchläufe = ~ 3333 Stunden = ~ 138 Tage

Fazit: Problem kommt vermutlich doch nicht aus CTrend::Draw().
HINWEIS: Werteauswahl war 0! Somit wurde DrawTrend() nie ausgeführt!

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:8 by Melanie Hermann, 12 years ago

Fazit der Tests:
Das Problem liegt zu 99,99% am Trend.
Speicher nimmt dramatisch ab, wenn der Trend-Screen angezeigt wird.

comment:9 by Melanie Hermann, 12 years ago

6.Test:

Funktion Draw() in Endlosschleife ausführen lassen.
Start: 25.415.680 Byte frei
Nach 60.000 Durchläufen: 12.697.600 Byte frei

Normalerweise 1 Durchlauf pro Minute
60.000 Durchläufe = ~ 41 Stunden

Fazit: Speicher nimmt rapide ab! Es liegt zu 100% an DrawTrend()!
HINWEIS: Dieses Mal war Werteauswahl != 0! Somit wurde DrawTrend() ausgeführt!

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:10 by Melanie Hermann, 12 years ago

7.Test:

DrawTrend() erhält Ressourcen jetzt als Parameter.
Funktion Draw() in Endlosschleife ausführen lassen.
Start: 28.545.024 Byte frei
Nach 100.000 Durchläufen: 27.553.792 Byte frei

Fazit: Hauptproblem scheint gelöst zu sein.
Hinweis: Allerdings hat der GC je ~ 100.000 Durchläufen kontinuirlich 4 KByte verloren.

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:11 by Melanie Hermann, 12 years ago

TODO:

  • Dauertest im GC-Testrack starten und beobachten

comment:12 by Melanie Hermann, 12 years ago

Gemachte Änderungen:

  • DrawTrend(): Legt keine CPen/CFont mehr lokal an, sondern bekommt diese als Parameter übergeben.
    • CFont *axisFontVert
    • CFont *axisFontHori
    • CPen *limitPen
    • CPen *fontPen
    • CPen *linePen
  • Es werden wieder CPen/CFont in Draw() deklariert und freigegeben:
    • CPen limitPen
    • CPen gridPen
    • CPen fontPen
    • CPen linePen
    • CFont axisFontHori
    • CFont axisFontVert
  • Jetzt überflüssiges memDC.SelectObject(&axisFontHori); aus Draw() entfernt

comment:13 by Melanie Hermann, 12 years ago

8. Test:
Neue Software in GC-Testrack installiert.
Screen auf Trend gestellt.
Freier Speicher 26.11. ~15:00 Uhr: > 25 MB
Freier Speicher 27.11. ~09:00 Uhr: 24.743.936 Byte (- ? Byte)
Freier Speicher 27.11. ~11:00 Uhr: 24.731.648 Byte (- 12.288 Byte)
Freier Speicher 27.11. ~12:30 Uhr: 24.715.264 Byte (- 16.384 Byte)
Freier Speicher 27.11. ~14:30 Uhr: 24.133.632 Byte (- 581.632 Byte)
Freier Speicher 27.11. ~16:00 Uhr: 24.076.288 Byte (-57.344 Byte)
Freier Speicher 28.11. ~08:00 Uhr: 23.961.600 Byte (-114.688 Byte)
Freier Speicher 28.11. ~11:30 Uhr: 23.879.680 Byte (-81.920 Byte)
Freier Speicher 28.11. ~16:00 Uhr: 23.904.256 Byte (+ 24.576 Byte)
Freier Speicher 29.11. ~08:00 Uhr: 23.879.680 Byte (- 24.576 Byte)
Freier Speicher 29.11. ~12:30 Uhr: 23.842.816 Byte (- 36.864 Byte)
Freier Speicher 29.11. ~15:00 Uhr: 23.810.048 Byte (- 32.768 Byte)
Freier Speicher 02.12. ~08:30 Uhr: 23.805.952 Byte (- 4.096 Byte)
Freier Speicher 02.12. ~11:30 Uhr: 23.785.472 Byte (- 20.480 Byte)
Freier Speicher 02.12. ~13:30 Uhr: 23.764.992 Byte (- 20.480 Byte)
Freier Speicher 02.12. ~16:30 Uhr: 23.764.992 Byte (- 0 Byte)
Freier Speicher 03.12. ~08:00 Uhr: 23.695.360 Byte (- 69.632 Byte)
Freier Speicher 03.12. ~12:30 Uhr: 23.694.360 Byte (- 0 Byte)
Freier Speicher 03.12. ~16:30 Uhr: 23.691.264 Byte (- 3.096 Byte)
Freier Speicher 04.12. ~08:00 Uhr: 23.691.264 Byte (- 0 Byte)
Freier Speicher 04.12. ~12:30 Uhr: 23.691.264 Byte (- 0 Byte)
Freier Speicher 04.12. ~16:00 Uhr: 23.691.264 Byte (- 0 Byte)
Freier Speicher 05.12. ~08:00 Uhr: 23.691.264 Byte (- 0 Byte)

TODO: GC beobachten, ob Speicher trotz neuer Software abnimmt.

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:14 by Melanie Hermann, 12 years ago

Resolution: fixed
Status: newclosed

Erklärung:
Problem war vermutlich, dass die Ressourcen gelöscht wurden, obwohl sie noch im CDC zugewiesen waren.

Note: See TracTickets for help on using tickets.