Ja , sie sind in der breiten Industrie "relativ" weniger wichtig. Der Texteditor ist möglicherweise "schnell genug" und erfordert möglicherweise keine großen Verbesserungen. Ein großer Teil des IT-Aufwands besteht darin, sicherzustellen, dass die in Java geschriebene Komponente A mit der in C geschriebenen Komponente B zusammenarbeitet, über die in Cobol (oder etwas anderem) geschriebene Nachrichtenwarteschlange korrekt kommuniziert oder das Produkt auf den Markt bringt.
Außerdem wurde die Architektur kompliziert. Wenn Sie einfache, einfache Prozessoren hatten, in denen Sie 1 Anweisung pro Zyklus hatten und in der Baugruppe schrieben, waren die Optimierungen "einfach" (Sie mussten nur die Anzahl der Anweisungen zählen). Derzeit verfügen Sie nicht über einen einfachen Prozessor, sondern über einen superskalaren Prozessor mit vollständiger Pipeline-Verarbeitung, der eine Umbenennung der Register und einen Cache mit mehreren Ebenen ermöglicht. Und Sie schreiben nicht in Assembly, sondern in C / Java / etc. Wo Code kompiliert / JITed ist (normalerweise, um den Code zu verbessern, den Sie oder ich in Assembly geschrieben haben), oder in Python / Ruby / ..., wo Code interpretiert wird und Sie durch mehrere Abstraktionsebenen von der Maschine getrennt sind. Mikrooptimierungen sind schwierig und die meisten Programmierer würden einen gegenteiligen Effekt erzielen.
Nein , sie sind in der Forschung nach wie vor wichtig und in absoluten Zahlen. Es gibt Bereiche, in denen Geschwindigkeit wichtig ist, da sie mit großen Datenmengen arbeiten. Auf dieser Skala kommt es auf die Komplexität an, wie das Beispiel von Pavel zeigt.
Es gibt jedoch noch weitere Fälle - wenn es auf die Geschwindigkeit ankommt (HPC, eingebettete Geräte usw.), ist es immer noch eine Option, sich von den Algorithmen abzuwenden. Sie finden an vielen Universitäten Gruppen, die sich auf Compiler und / oder Softwareoptimierung spezialisiert haben. Zum Beispiel kann ein einfacher Wechsel der Schleifenreihenfolge eine tausendfache Beschleunigung bringen, nur weil der Cache effizient genutzt wird - während dies ein Grenzbeispiel sein könnte, wächst die CPU-Speicherlücke in den letzten 30 Jahren um das 1000-fache. Auch die Computerarchitektur ist Teil von CS. Daher sind viele der Verbesserungen der Rechengeschwindigkeit tatsächlich Teil des allgemeinen CS-Bereichs.
Auf der industriellen Seite - wenn Sie über einen HPC-Cluster verfügen, spielt die Geschwindigkeit eine Rolle, da ein einzelnes Programm Tage, Monate oder Jahre lang ausgeführt werden kann. Nicht nur Sie müssen die Stromrechnung bezahlen, auch das Warten kann Geld kosten. Sie können doppelt so viel Hardware einwerfen, aber 700 Millionen US-Dollar können kaum als Taschengeld für alle angesehen werden, außer für die größten Unternehmen. In solchen Fällen sind die Programmierer die billigere Option Denke darüber nach.
Auch Geschwindigkeit könnte eine bessere UX bedeuten. In vielen Berichten über das Betriebssystem von Mobiltelefonen wird angegeben, welches "schnippischer" ist, und obwohl dies mit "Tricks" durchgeführt werden kann, handelt es sich mit Sicherheit um einen Studienbereich. Außerdem möchten Sie schneller auf Ihre Daten zugreifen und schnell das tun, was Sie benötigen. Manchmal bedeutet dies, dass Sie mehr tun können - in Spielen haben Sie 0,017 Sekunden Zeit, um alles zu tun, und je schneller Sie sind, desto mehr Süßigkeiten können Sie setzen.