Zusammenhang zwischen PC Hardware und Programmqualität



  • Früher hat man an Bytes und Rechenoperationen sparen müssen und lieber direkt mit Pointern im Speicher rum geschreiben und lieber mal ne Überprüfung gespaart, weil man sich dachte, dass etwas sowieso nie passiert und dann Fehlerquellen und Crashes eingebaut. Heute hat man genug Rechenpower um auch mal zu oft n Arrayindex usw. zu prüfen und kann so einige Crashes verhindern. Dafür gibts jetzt dann Multithreading, wo man viele Fehler einbauen kann. Gibts irgendwann Hardware, mit der man einfacher Multithreadinganwendungen schreiben kann?



  • darum kümmert sich sowieso das os bei nem PC??? 👎



  • Um was?



  • Ich hatte immer die Möglichkeit die Tests einzubauen, habe aber früher auf grund mangelnder Geschwindigkeit teilweise darauf verzichtet, obwohl ich mir über die Möglichkeit bewusst war.
    Die Möglichkeit die Tests einzubauen bestand also immer und ist somit unabhängig von der Hardware.

    Jetzt Fragst du nach Multithreading. Damit deine Analogie aufgeht müssten wir bereits jetzt die Möglichkeit haben Fehler, die im Zusammenhang mit Multithreading stehen erkennen zu können, sie aber aus irgendwelchen anderen harwarebedingten Gründen nicht einsetzen.
    Welche wären das?



  • Wenn dann gibt es irgendwann Software, Programmiersprachen, sonstige Tools oder auch Techniken mit denen sich einfacher Programme mit Multithreading schreiben lassen.
    Mit der Hardware hat das IMO nix zu tun.

    Das einzige was die Hardware liefern könnte wäre eine Möglichkeit die Geschwindigkeitseinbussen bei gewissen Dingen die für sauberes Multithreading nötig sind (bzw. auch nur gerne verwendet werden) zu verringern.

    Daran arbeiten schätze ich auch alle CPU-Hersteller.

    Das wird aber (schätze ich) die Qualität von Programmen mit Multithreading nicht wesentlich verbessern, sondern nur die Geschwindigkeit mit der es zu Fehlern kommt erhöhen 🙂



  • hustbaer schrieb:

    Wenn dann gibt es irgendwann Software, Programmiersprachen, sonstige Tools oder auch Techniken mit denen sich einfacher Programme mit Multithreading schreiben lassen.
    Mit der Hardware hat das IMO nix zu tun.

    Das einzige was die Hardware liefern könnte wäre eine Möglichkeit die Geschwindigkeitseinbussen bei gewissen Dingen die für sauberes Multithreading nötig sind (bzw. auch nur gerne verwendet werden) zu verringern.

    Wenn z.B. das Locking schneller gehen würde, könnte man es auch an Stellen machen, an denen man denkt, dass man eigentlich keines braucht und so nen Fehler vermeiden der vielleicht doch passieren könnte.



  • Theorie schrieb:

    hustbaer schrieb:

    Wenn dann gibt es irgendwann Software, Programmiersprachen, sonstige Tools oder auch Techniken mit denen sich einfacher Programme mit Multithreading schreiben lassen.
    Mit der Hardware hat das IMO nix zu tun.

    Das einzige was die Hardware liefern könnte wäre eine Möglichkeit die Geschwindigkeitseinbussen bei gewissen Dingen die für sauberes Multithreading nötig sind (bzw. auch nur gerne verwendet werden) zu verringern.

    Wenn z.B. das Locking schneller gehen würde, könnte man es auch an Stellen machen, an denen man denkt, dass man eigentlich keines braucht und so nen Fehler vermeiden der vielleicht doch passieren könnte.

    Jo das meinte ich inetwa mit dem letzten Satz.
    Bringt aber auch nur dann was wenn der Programmierer "weiss dass er nicht weiss" ob an einer Stelle Locking nötig ist oder nicht.
    Und wo viel gelockt wird fallen Deadlocks (nicht immer, aber oft genug 🙂 ).

    Von daher wären wohl neue "Techniken" die einfacher anzuwenden sind besser.


Anmelden zum Antworten