Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Statistik-Challenge: von 0 auf 18.165 ...in <1,6 Sekunden! Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von das |_ Team, Homepage - 17.07.2025 16:11)
das |_ Team nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, CC1-Station V1.1, Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station, C-Control 2

    RE: Ein wenig Statistik

    Von 0 auf 18.165 in <1,6 s!
    +-----+-----+-----+-----+-----
    0     5k   10k   15k   [Ziel]


Hallo liebes Forum,

dieser Entwurf eines Demo-Programms namens OXFSTAT0.BAS.ocb soll auf der Open-Maxi die Zugriffszahlen aller Beiträge im Forum der C-Control/Intern analysieren. Der ?Hirunner? (meistgelesene Beitrag) wird bereits automatisch ermittelt ? doch er hat noch einen Off-by-One-Fehler. Woran liegt das?

Du schaffst es, mehr Funktionalität in das Programm zu packen ? und durch geschicktes Programmieren den Zeitbedarf weiter zu optimieren? Perfekt!  
Die Challenge: Der Zeitbedarf je Auswertefunktion soll unter 1,6 Sekunden bleiben. Derzeit liegt er bei etwa 1,5 Sekunden. Und auch vom Programmspeicher der Open-Maxi ist noch fast die Hälfte frei.


Mögliche Erweiterungen:

   Top-10- und Low-10-Liste
   Ausgabe eines Bereichs (z.?B. nur IDs 4000?6000)
   Sortierte Darstellung nach Aufrufhäufigkeit
   Export oder Visualisierung der Daten
   Abgleich mit Veröffentlichungsdatum o.?ä.
   Mittelwert der Aufrufe


Als Einstiegshilfe haben wir die Liste aus Dietmars  
Beitrag  
in ein INCLUDE-kompatibles Format gebracht. Und den Demoquelltext hier angehängt ? für alle, die gerne optimieren, experimentieren oder einfach mal schauen wollen.

Wer Ideen, Wünsche oder Code-Schnipsel beisteuern möchte ? nur zu.  
Mitmachen ist ausdrücklich erwünscht!

Viele Grüße  
das |_ Team

---


' -----------------------------------------------------------------------
' Statistik-Challenge: Auswertung Aufrufzahlen des C-Control/Intern Forum
' von Beitrag 1 bis 18165 - mit ansteigender Funktionalitaet. Mitmachen!
' Unter 1,6 Sekunden bleiben. Weitere Informationen im Forum (siehe Link).
' Link: https://ccintern.dharlos.de/forum/lesen.php?eintrag=181298
' ------------------------------------------------------------------------

option OPENMAXI


DEFINE c_MAX_BEITRAG_ID 18165
DEFINE c_MIN_BEITRAG_ID     1

DEFINE beitragsnummer, systicks_start, systicks_finish, systicks_elapsed, mittelwert, wieoftabgerufen, meist_wieoft, meist_beitrag AS WORD



define End2Host ivar [88]  ' bei END in den Hostmodus (unabh. vom START-Pin)
End2Host=ON

?"OXFSTAT0.BAS.ocb ":? 'Erste PRINT String Anweisung im Quelltext als Label nutzen (Lbit-Konvention).


PRINT "Beginne Auswertung... ("; c_MAX_BEITRAG_ID ;" Beitraege)"

PRINT
systicks_start=timer





   FOR beitragsnummer=c_MIN_BEITRAG_ID TO c_MAX_BEITRAG_ID

       LOOKTAB Anzahl_Aufrufe_3,beitragsnummer,wieoftabgerufen

       IF wieoftabgerufen > meist_beitrag THEN

       meist_wieoft=wieoftabgerufen
       meist_beitrag=beitragsnummer

       ENDIF

      IF rxd THEN Auswertung

   NEXT




#Auswertung
systicks_finish=timer

systicks_elapsed=ABS(systicks_start-systicks_finish)
PRINT "Zeitbedarf ca. ";

  IF systicks_elapsed >-1 AND systicks_elapsed <=1638 THEN

   PRINT systicks_elapsed*20;

  ELSE

   PRINT"(?)"; 'Ueberlauf, bei mehr als 32 Sekunden Programmlaufzeit...

  ENDIF


PRINT " ms"
PRINT
PRINT "Zeitnahme(raw): ";systicks_start;",";systicks_finish;",";systicks_elapsed

PRINT "MIN_BEITRAG_ID: ";c_MIN_BEITRAG_ID
PRINT "MAX_BEITRAG_ID: ";c_MAX_BEITRAG_ID
PRINT "Analyse bis ID: ";beitragsnummer - c_MIN_BEITRAG_ID +1
PRINT "'Hirunner:' ID: ";meist_beitrag
PRINT " |____ Aufrufe: ";meist_wieoft
PRINT "  |_Mittelwert: ";mittelwert

  END

#Ende
  ?:? "Auswertung beendet - Hostmodus"

END

Include "aufrufe3.tab"

' Die Tabelle "Anzahl_Aufrufe_3" wird extern via Include "aufrufe3.tab"
' geladen. Die nachfolgend eingeklammerte Tabelle dient nur der Simulation
' bei Entwicklung.

' TABLE Anzahl_Aufrufe_3
' c_MAX_BEITRAG_ID
' TABEND


Hinweis: Der Text in diesem Beitrag wurde unter Zuhilfenahme von ChatGPT gestaltet.



Passender Link: Include-Datei: "aufrufe3.tab" (35 kB)

Meine Homepage: http://visit.ghn-sensorik.de/L-Team/

 Antwort schreiben

Bisherige Antworten:

Statistik-Challenge: Statistik-Tabelle resident laden (von das |_ Team - 3.08.2025 20:43)
    Statistikdaten ans Ende des USERFLASHs kopieren (von Dietmar - 30.08.2025 14:48)
        Statistikdaten am Ende des USERFLASHs lesen (von Dietmar - 30.08.2025 14:52)
Mittelwertbildung (von Dietmar - 22.07.2025 15:52)
    Mittelwertbildung und OCBASR (von Dietmar - 22.07.2025 15:55)