Code: Alles auswählen
$ time python3 -c'print("#"*100000)'
real 0m0,038s
user 0m0,033s
sys 0m0,005s
Code: Alles auswählen
$ time python -c'print"#"*100000'
real 0m0,034s
user 0m0,015s
sys 0m0,016s
Code: Alles auswählen
$ time python3 -c'print("#"*100000)'
real 0m0,038s
user 0m0,033s
sys 0m0,005s
Code: Alles auswählen
$ time python -c'print"#"*100000'
real 0m0,034s
user 0m0,015s
sys 0m0,016s
Klasse was hier so alles auftaucht!
Habe mir mittlerweile auch einen "zusammengezimmert". Sieht zwar schrecklich aus aber tut was es soll...Meillo hat geschrieben:10.05.2019 08:18:30Kannst dir ja mal ueberlegen, ob rueckblickend das Schreiben eines Scriptes...
Habe mich wohl nicht so gut ausgedrueckt.Meillo hat geschrieben:10.05.2019 08:18:30Da stimmt die Codezeile noch nicht, oder haben wir uns falsch verstanden?
Code: Alles auswählen
yes \#|tr -d '\n'|dd bs=100000 count=1
Code: Alles auswählen
yes \#|tr -d '\n'|dd bs=1 count=100000
Da hast Du natuerlich Recht. Aber leider nur Platz 3 40716Meillo hat geschrieben:10.05.2019 08:18:30Ich denke, am schnellsten waere:
dd bs=100000 count=1 </dev/zero 2>/dev/null | tr \\0 \#
... und nicht eine Variante mit yes(1).
Code: Alles auswählen
dd bs=1 count=100000 </dev/zero 2>/dev/null | tr \\0 \#
Code: Alles auswählen
yes \#|head -n 1000000|tr -d '\n'
Alles klar, Danke fuer die Aufklaerung.Meillo hat geschrieben:10.05.2019 08:18:30printf %.s# {1..100000}
Weil die Shell hier bei der Brace-Expansion eine riesig lange Befehlszeile erzeugen muss
Danke fuer den Tipp, wieder was gelernt.RobertDebiannutzer hat geschrieben:10.05.2019 09:46:50Mit "type builtin" kannst Du es herausfinden
Noch eine Moeglichkeit, super.
Code: Alles auswählen
perl -e 'print "#"x1000000'
Code: Alles auswählen
time echo "##########...#######"
Das gilt für das neue Script im im Post vor mir nicht mehr.Die Messungen sind grob unfair: Du misst immer nur den Zeitverbrauch der äußeren bash selbst.
Mein bestreben war auch nicht die exakte Zeit nur des Befehls zu messen, sondern eher verwertbare Vergleichswerte zu erhalten.wanne hat geschrieben:11.05.2019 14:18:01Die Messungen sind grob unfair: Du misst immer nur den Zeitverbrauch der äußeren bash selbst.
Warum? Ich kann in dem Script in der Funktion zur Zeitmessung keine Aenderung finden. (Kann aber auch an mir liegen, war sehr spaet gestern... )wanne hat geschrieben:11.05.2019 14:28:03Das gilt für das neue Script im im Post vor mir nicht mehr.
Aber genau darum geht es doch auch. Wie lange braucht ein Befehl um auf der Konsole eine Anzahl Zeichen zu schreiben.wanne hat geschrieben:11.05.2019 14:18:01Deswegen müssten die C-Varianten übelst abloosen, weil der gcc gar nicht schnell genug gestartet ist.
In Zeile 30wanne hat geschrieben:11.05.2019 15:52:46Hier ein etwas erweitertes Script: pastebin/?mode=view&s=40718
Code: Alles auswählen
groesse_fuer_groessentest=0
Hatte ich mir auch ueberlegt aber es dann gelassen, da ich das Script auch fuer andere Zeitmessungen benutzen moechte,* Anzahl der # kan ausgewählt werden
Stimmt, so kann man auch erkennen ob auch wirklich alle Zeichen die Richtigen sind.* Hash statt Dateigröße wird verglichen
Das wundert mich etwas, laut "help time" kennt bash/time die Optionen -a, -o und -f garnicht? Zeigt aber keine Fehlermeldung und funktioniert normal?* Deafault auf builtin time gesetzt
Es wird nicht korrekt aufgeraeumt wenn das Script nicht ganz durchlaeuft / vorzeitig beendet wird...* mktmp genutzt.
Ja. Aber die bash läuft halt schon.Wenn alle Befehle unter den gleichen Bedingungen gestartet werden (bash + Befehl) ist das doch auch gewaehrleistet.
Nein die Zeit in der der Befehl gelaufen ist. Da gehört weder das starten der bash noch das parsen des Befehls dazu. nicht dazu. In deinem Script startest du jedes mal eine neue bash. Dann ist wieder alles OK.Oder sehe ich das falsch? Time misst doch die Zeit, wie lange die bash gelaufen ist
Ja. Aber es gibt halt einen falschen Eindruck. Die C-Varianten sind bei extrem vielen # deutlich schneller als die Konkurrenten mit yes. Eigentlich will man einen Grafen haben.Wenn ein Befehl z.B. awk nutzt muss halt auch erst awk gestartet werden. Das gehoert m.M.n. zur Laufzeit dazu.
Gibt nochmal eine Unzulänglichkeit in meinem sed. Kommt nochmal ne Version.In Zeile 30
Wollte die Dateien direkt in /tmp liegen haben können. Werde den default aber wieder ändern.Wozu hast Du sie eigentlich eingefuegt?
Ah, ok. Jetzt verstehe ich was Du meinst. (Glaub ich zumindest...)
Vielleicht reden wir aneinander vorbei. Ich meine, so wie es im Moment in meinem Script implementiert ist wir doch alles gemessen.wanne hat geschrieben:11.05.2019 18:49:00Nein die Zeit in der der Befehl gelaufen ist. Da gehört weder das starten der bash noch das parsen des Befehls dazu. nicht dazu.
Da hast Du natuerlich recht. Aber wie schon geschrieben, war meine Absicht irgendwie alles abzudecken um das Script auch fuer andere Zwecke nuetzlich zu machen.
Klasse, bin gespannt...wanne hat geschrieben:11.05.2019 18:49:00benchmarke Gerade werde gleich mal Ergebnisse raus geben.
Ja und ja.Vielleicht reden wir aneinander vorbei. Ich meine, so wie es im Moment in meinem Script implementiert ist wir doch alles gemessen.
Code: Alles auswählen
echo "s=\"##########\"; for i=1,9 do; s=s .. s; end; for i=1,math.floor(%numcharsHX/5120) do; io.write(s); end; for i=1,math.fmod(%numcharsHX,5120) do; io.write(\"#\"); end " | lua
Code: Alles auswählen
echo -e "#include <string.h>\n#include <unistd.h>\n#include <sys/ioctl.h>\n int main(){ int bufflen=10240; char s[bufflen]; memset(s,'#',bufflen); int i=%numcharsHX/bufflen; while(i--) write(1,s,bufflen); i=%numcharsHX%bufflen; while(i--) write(1,s,1); }" | gcc -xc -; ./a.out
Bei mir wird es korrekt angezeigt. (Firefox 66.0.5 (64-Bit))
Inkscape. Habe auch ghostscript versucht. Produziert bei mir beides mal nur ein schwarzes Bild im Browser.Womit hast Du eigentlich die svg-Grafik erstellt?