Der Code-Schnippsel-Thread


  • Er wollte damit nur zum ausdruck bringen wie genial der Code ist und sagen das er glatt von mir hätte kommen können.

    Aha. Das heißt auf einer Genialitätsskala von 1-10 eine -1


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • smaller numbers are better



    Aber ohne witz vielleicht war das nicht so klug was dazu zu schreiben, ich habe von dem code da keine ahnung und weiß nicht mal wie die Sprache heißt.

    Einmal editiert, zuletzt von Michael_ (16. Juni 2016 um 22:53)

  • Das Programm erfüllt sehr wahrscheinlich seinen namentlichen Zweck nicht, da dieser sich nur irgendwo 1 GiB virtuellen Speicher her besorgt und mit einem fixen 8-Bit-Muster (0100 0001) vollschreibt. Man müsste schon mit Inline-Assembler (z. B. CLFLUSH-/MFENCE-Instruktionen auf x86) dafür sorgen, dass die Muster tatsächlich im RAM landen. Ein "intelligenter" C-Compiler könnte vielleicht sogar die memset-Aufrufe völlig aushebeln, da der von der einen Funktion beschriebene Speicher ausschließlich von der anderen ausgelesen und sonst nicht benutzt wird - mit clang unter FreeBSD scheint laut dem Thread z. B. das gesamte Gigabyte einfach auf eine einzige Speicherseite gemappt zu werden, die mit diesem Muster gefüllt ist.


  • Das Programm erfüllt sehr wahrscheinlich seinen namentlichen Zweck nicht, da dieser sich nur irgendwo 1 GiB virtuellen Speicher her besorgt und mit einem fixen 8-Bit-Muster (0100 0001) vollschreibt. Man müsste schon mit Inline-Assembler (z. B. CLFLUSH-/MFENCE-Instruktionen auf x86) dafür sorgen, dass die Muster tatsächlich im RAM landen. Ein "intelligenter" C-Compiler könnte vielleicht sogar die memset-Aufrufe völlig aushebeln, da der von der einen Funktion beschriebene Speicher ausschließlich von der anderen ausgelesen und sonst nicht benutzt wird - mit clang unter FreeBSD scheint laut dem Thread z. B. das gesamte Gigabyte einfach auf eine einzige Speicherseite gemappt zu werden, die mit diesem Muster gefüllt ist.


    Ja, gute Punkte. Die Compileroptimierungen kriegt man mit volatile und Compiler-Barriers raus, wenn sie überhaupt greifen. Die Prozessoptimierungen sind schwieriger, Cache einerseits, insbesondere Prefetcher andererseits. Was wir damals für die Messung von Speicherlatenz in NUMA-Systemen gemacht haben, ist den Speicherbereich mit Pointern auf sich selber füllen und dann zufällig shuffeln. Und dann ein paar Millionen Iteration einfach den Pointern folgen. Den Cache kriegt man in der Regel durch genügend grosse Blöcke vergiftet, und der Prefetcher kann die zufälligen Muster nicht unendlich vorhersagen.

    Einmal editiert, zuletzt von gandro (17. Juni 2016 um 01:26)


  • Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (29. Juni 2016 um 19:53)

  • Ersetz mal /home/tkoehler/ durch ~, damit es auch bei anderen Benutzernamen/Homeverzeichnissen fehlerfrei läuft.


  • Ersetz mal /home/tkoehler/ durch ~, damit es auch bei anderen Benutzernamen/Homeverzeichnissen fehlerfrei läuft.

    Beziehungsweise ${HOME}, wenn das Skript eine einheitliche Form haben soll. ~ ist ein Alias für diese Variable.

    Und die Shebang-Zeile #!/bin/bash muss an den Anfang der Datei, sonst lässt sich das Skript u. U. (falls es nicht von einer anderen Shell ausgeführt wird) nicht ausführen.

  • Beziehungsweise ${HOME}, wenn das Skript eine einheitliche Form haben soll. ~ ist ein Alias für diese Variable.

    Und die Shebang-Zeile #!/bin/bash muss an den Anfang der Datei, sonst lässt sich das Skript u. U. (falls es nicht von einer anderen Shell ausgeführt wird) nicht ausführen.

    Wird bei Gelegenheit angepasst.


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

  • Quellcode des Internets:

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

    Einmal editiert, zuletzt von thosch97 (9. Juli 2016 um 03:46)


  • Ich habe mein erstes Userscript/Greasemonkey-Script mit Unterstützung durch jQuery geschrieben.

    Hab gerade festgestellt, das selbiges Skript mit minimalen Änderungen und zusätzlichen Kommentaren immer noch in meinem Browser-Profil lebt.

    Spoiler anzeigen

  • Alle Artikel eine Ebay Kleinanzeigen-Verkäufers alphabetisch auflisten.

    Ebay Kleinanzeigen bietet hierfür keine Funktion. Genauso wenig bietet es eine Möglichkeit zum durchsuchen der Artikel eines Verkäufers nach Begriffen.

    Dieses Script hier generiert eine alphabetisch sortierte Liste der Artikel eines Verkäufers. Die Begriffe zum splitten kann man bei Bedarf dem Thema (Hier: Schallplatten) anpassen. Am Ende erhält man eine Datei namens liste, die das Ergebnis enthält und bequem per grep durchsucht werden kann.

  • Ob ich test oder ls nehme ist am Ende doch wumpe, hauptsache am Ende kommt true oder false raus.

    Ich hatte am Anfang ein großes sed mit per Semikolon getrennten Befehlen. Sah von der Lesbarkeit aber scheiße aus. Separate Prozesse sind kein Ding, laufen ja stur hintereinander statt parallel.

    Bei Brace-Expansion wusste ich nicht dass das auch Variablen kann. Dachte, das ginge nur mit vordefinierten Zahlen.


  • Ob ich test oder ls nehme ist am Ende doch wumpe, hauptsache am Ende kommt true oder false raus.

    Ich meine, test wäre inzwischen ein Bash-Builtin, wegen Performance und so … bin mir aber nicht sicher.


    Bei Brace-Expansion wusste ich nicht dass das auch Variablen kann. Dachte, das ginge nur mit vordefinierten Zahlen.

    Öhm… da war ich zu voreilig. Tatsächlich wird die Brace Expansion vor der Variablenevaluierung durchgeführt. Schon blöd irgendwie.

    • • • – • – – • – –

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!