beteiligung an einem benchmark.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

ich wollte einen Benchmark programmieren. und das was da unten steht hat natürlich noch nichts mit dem gui oder dem Code zu tun. aber es wäre nett, wenn ihr es mal in euren Shells ausführen würdet und das Ergebnis in die Kommentare schreibt, damit ich einen Durchschnittswert berechnen kann.










Code: Alles auswählen

import time
def ganzvielezahlen(max):
    t1 = time.time()
    for x in range(0, max):
        print(x)
    t2 = time.time()
    print("es hat %s sekunden gebraucht" % (t2 - t1))

#nach der eingabe in die shell müsst ihr ganzvielezahlen(1000) eingaben um ein
#ergebnis zu bekommen
Zuletzt geändert von jan.b am Mittwoch 23. August 2017, 23:51, insgesamt 2-mal geändert.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich trau mich nicht. Das ist bestimmt ein fieser Trick um meinen Computer zu hacken! :x
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

mit dem was da steht wohl kaum :lol:
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Abgesehen davon das du in fast hundert Postings noch immer nicht gelernt hast die Codebox zu nutzen, ist dieser "Benchmark" völlig wertlos.

Zum einen weil er bei weitem nicht genug Last erzeugt. Zum zweiten weil du keinerlei Daten über das System abfragst oder gar selbst ermittelst. Womit die Aussagekraft gen null geht. "Läuft auf Computern" kann man dann sagen. Große Überraschung.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

die Code box ist dafür da um Code verständlicher auszudrücken, was hier denke ich nicht notwendig gewesen wäre. aber für dich mache ich das in Zukunft vielleicht. die last die erzeugt wird ist im grunde egal es geht ja darum wie schnell es ausgegeben wird und auf dieser Grundlage kann man sehr wohl einen wert ermitteln. kann aber auch sein, dass ich falsch liege überzeug mich vom Gegenteil. aber zuerst tu worum ich in dem beitrag gebeten habe.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@jan.b: Codeboxen sind immer notwendig. Lies doch mal Deinen Beitrag. Der Code ist völlig unverständlich, weil jegliche Einrückung fehlt. Warum sollte irgendwer ein Programm ausführen, das so offensichtlich keinen Sinn macht. Was willst Du eigentlich erreichen? Für Benchmarks gibt es das timeit-Modul. time.time ist zu ungenau.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

guck besser nochmal hin. da sind die einrückungen
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Achsoooooo. Dann kann ich deine Code also einfach kopieren & er läuft?

Wohl kaum. Die Codebox ist vor allem dafür da die in Python zwingend notwendigen Einrückungen zu bewahren. Das du das nicht begriffen hast spricht Bände...

Und benchmarks dienen dem Vergleich. Wenn man aber kein Kriterium hat, mit dem man vergleichen kann, sind sie wertlos. Darüber könnte man natürlich mal nachdenken, aber das wäre ja Arbeit die DU dir machen musst, nicht andere...
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

guck einfach nochmal in meinen beitrag da sind ja Einrückungen und ja er wird laufen. der vergleich soll dein Computer im vergleich zu anderen Computern sein bsp: der pc hat 3 Sekunden gebraucht die Durchschnittszeit für diese aktion beträgt 4 Sekunden dein Computer liegt über dem durchschnitt.
BlackJack

@jan.b: Drei Sekunden um die Zahlen von 1 bis 999 auszugeben? Also gut, auf meinen C64 steht auch „personal computer“ auf dem Rechner, und der braucht dazu länger, aber auf was für einer aktuellen Hardware hast Du das denn gemacht? Selbst auf einem 486er mit DOS und interpretiertem BASIC dürfte das nur einen Bruchteil einer Sekunde benötigen.

Und auch auf dem gleichen Rechner und mit mehr Zahlen hängt das extrem davon ab *wo* diese Zahlen ausgegeben werden. Denn das ausgeben der Zahlen auf dem Bildschirm ist letztlich was dieser unsinnige Benchmark misst. Es macht einen Unterschied ob man das in einem echten Textdisplay ausführt wo jedes Zeichen durch ein oder zwei Bytes repräsentiert wird, oder einem Framebuffer, oder in einer GUI, und da dann jeweils ob und in wie weit Hardwarebeschleunigung von der Grafikhardware dabei zum Zug kommt. Und was bringt so ein Vergleich am Ende? Also insbesondere uns, denn wir sollen uns ja die Mühe machen diesen Unsinn laufen zu lassen‽
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

arbeit kann man das ja kaum nennen aber wenn du mir deine Konto Daten nennst werde ich dir für deine mühe 10.000€ überweisen kein fake!!!!!!!!!!!
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

spaß beiseite. es war nur ein Laptop. es war nur ein Beispiel, es waren etwas über 3.5 Sekunden. die Shell war (falls keine retorische frage)IDLE (Python 3.5 64-bit) (falls doch war es trotzdem IDLE (Python 3.5 64-bit)) Hardware war ein i7-5500U. und ich dachte, dass es eh jeder in der selben Shell ausgeben lässt aber ganz durchdacht war das vielleicht wirklih nicht.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

BlackJack hat's ja schon gesagt: als Benchmark ist das total unsinnig, weil das Programm der größten Teil der Zeit mit I/O (=Ausgabe der Daten nach STDOUT) verbringt. Die CPU langweilt sich da ziemlich.

Wenn du die Rechenleistung deiner CPU testen willst, dann muss du schon was nehmen, was CPU-bound ist, also wo die CPU der limitierende Faktor ist. Ein gängiges Beispiel ist Primzahlenberechnung. Ein einfaches Beispiel findest du z.B. in der Python-Doku:
https://docs.python.org/3/library/concu ... or-example
Das Beispiel lässt sich auch ganz einfach de-parallelisieren wenn man möchte.

Gruß, noisefloor
Antworten