
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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)" 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 "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 |