Wir haben die Verwendung von C "aus performance Gründen"

In diesem Alter von vielen Sprachen, es scheint eine tolle Sprache für fast jede Aufgabe, und ich finde mich beruflich kämpft gegen ein mantra der "nichts, aber C ist schnell", wo schnell ist wirklich gemeint "schnell genug". Ich arbeite mit sehr rationalen aufgeschlossene Menschen, die gerne vergleichen, zahlen und alles, was ich habe, sind Gedanken und Meinungen. Könnten Sie mir helfen, meinen Weg vorbei subjektive Meinungen und in der "realen Welt"?

Würden Sie mir helfen, Forschung, was, wenn andere Sprachen verwendet werden könnte, für embedded-und (Linux -) Systeme Programmierung? Ich könnte sehr gut sein das drücken einer falschen Hypothese und würde es sehr zu schätzen Forschung zeigen mir diese. Könntest du bitte einen link oder sind gute zahlen, so wie zu helfen, die "das ist eben seine/Ihre Meinung" Kommentare auf ein minimum.


So, das sind meine besonderen Anforderungen

  • Speicher ist nicht eine ernsthafte Einschränkung
  • Portabilität ist nicht ein ernstes Problem
  • dies ist kein Echtzeit-system
  • Es wird schwer werden zu finden, die zahlen, die beweisen, dass etwas ist eigentlich falsch.
  • Vorzeitige Optimierung ist die Wurzel allen übels: ich habe erfolgreich geschrieben von embedded software in Python. Am Ende haben Sie, um die balance der Kosten des Schreibens in eine untere-level-Sprache wie C vs der Vorteil von RAD in einer Sprache auf höherer Ebene (und die Kosten in Bezug auf Leistung).
  • würde vorsichtig sein, über die vorzeitige Optimierung argument. Wenn die Rechenleistung begrenzt ist, und eine bestimmte Menge an Arbeit, die in real-time oder near-real-time, und wählen Sie eine Sprache, die benötigt mehr Rechenleistung für die Arbeit, als Sie haben, sind Sie königlich geschraubt, da Sie jetzt über starten mit einer fähigen Sprache. Mehr Infos unter weblogs.mozillazine.org/roc/archives/2005/11/...
  • Wenn der Speicher, der Portabilität und Pausen (durch GC) sind nicht ein Problem, welches sind dann die Gründe, die Ihre Kollegen geben zu wollen, um mit C?
  • Ihre Frage ist zu vage und unspezifisch. Was sind Ihre embedded-Systemen zu tun?
  • Im Allgemeinen eine rechenintensive Anwendung wird MINDESTENS 2X langsamer, wenn Sie etwas anderes als C (es sei denn du bist verrückt genug, es zu schreiben in assembler).
  • Die Frage ist ein wenig ausschweifend in seiner Grammatik und Inhalt.
  • Ein gut geschriebenes VB-Programm an Leistung übertreffen können ein schlecht geschriebenes C-Programm. Es ist nicht die Sprache, ist schnell (ich könnte schreiben Sie einen C-compiler, generiert horriblly langsamen code), es ist, wie Sie die Sprache nutzen.
  • "Vorzeitige Optimierung ist die Wurzel allen übels", aber es gibt eine feine Linie zwischen der vorzeitigen Optimierung und vorzeitige pessimization. Letzteres sollte vermieden werden, zusammen mit dem früheren. Beim schreiben einer raytracer auf einem embedded-system und die Wahl von Python, zum Beispiel, ist schon ziemlich pessimistisch. Es ist unrealistisch, dass man jemals erreichen solcher Ziele, die mit einem Dolmetscher.
  • "Im Allgemeinen eine rechenintensive Anwendung wird MINDESTENS 2X langsamer, wenn Sie etwas anderes als C" ... es sei denn, es ist C++, dann kann es sein, zehn mal schneller (ex: qsort vs std::sort, string-Verarbeitung, etc.) nur weil es einfacher zu schreiben, effizienten code. Das heißt, in Wirklichkeit viel weniger erfahrene C++ - Programmierer nicht bezahlen, die Aufmerksamkeit auf die Effizienz und schreiben Dinge, die 10 mal langsamer als C, weil Sie achtlos pessimize Ihre Ergebnisse (ex: tiefes kopieren von Daten unnötig) und nicht Profil Ihren code.
  • Schauen Sie in MirageOS, wenn Sie möchten ein Beispiel

Schreibe einen Kommentar