Django vs Rails Leistung


Antwort 1:

Sie sind wahrscheinlich ziemlich ähnlich. Denken Sie daran, Passenger und andere für Ruby on Rails verfügbare Tools zu verwenden, und Sie erhalten noch schneller, Nginx und so weiter.

Dann ist es wichtig, wie Sie es programmieren, und ich könnte weitermachen. Datenbank, Indizes, Caching.

Django und Rails sind nicht dafür bekannt, schnell zu sein, und sie müssen oder wurden auch nicht so entworfen.

Sie wurden entwickelt, um Sie dorthin zu bringen und tatsächlich etwas zu erschaffen, entweder alleine oder als Teil einer sehr kleinen Gruppe. Ich habe beides getan, ich habe Systeme entwickelt, bei denen alles gemacht werden muss, sicher, dass sie schnell waren, aber das Schreiben hat lange gedauert. Außerdem habe ich in etwas mehr als einem Wochenende riesige Rails-API-Systeme hergestellt.

Eines meiner langfristigen Projekte erhöht kaum die CPU-Auslastung um 1%, ja, das ist richtig, aber es gibt Unmengen von Menschen, die es verwenden. Wie viel schneller wäre ich gewesen, wenn ich ehrlich gesagt Django oder Rails verwendet hätte, möchte ich nicht viel darüber nachzudenken.

Aber sehen Sie nur, dass Twitter, selbst wenn es ab und zu (oder öfter) kaputt ging, nicht optimal in reinen Rails geschrieben wurde, aber es tat, was es tat, es erzeugte jede Minute oder so viele Gigabyte Daten, wie schnell Sie muss sein ? Müssen Sie schneller als Twitter sein, dann können Sie es sich leisten, es in Assembly zu schreiben, nur weil Sie wollen.

Es gibt Werkzeuge für alles. Etwas zu machen ist immer besser als etwas zu haben, das man nie fertiggestellt hat, das aber sehr schnell war. Selbst wenn Sie ein System mit 10.000 Codezeilen haben, dauert es nicht so lange, es in etwas anderes umzuschreiben, wenn Sie die Dinge richtig planen.

Ich habe einmal an einem riesigen System gearbeitet, das in Python (nicht in Django) geschrieben wurde. Es hat jede Minute Zehntausende von Ereignissen ausgeführt, keine großen Probleme, außer Berichterstattung. Millionen von Millionen von Datenpunkten live zu bekommen, hat Pythons fast zurückgebrochen. Wir haben diesen Teil gerade in Go (Golang) geschrieben und Python zum Frontend gemacht, um ihn von einem anderen Dienst anzufordern, keine große Sache, einfach, kein Umschreiben und blitzschnell. Es wurde nie erwähnt, ob wir das gesamte System in Go ausführen sollten, aber das hätte viel mehr Leute, mehr Zeit und viel mehr Geld gekostet, aber wir hätten es tun können.

Meine Erfahrung läuft normalerweise darauf hinaus, dass die Datenbank am Ende der Flaschenhals ist. Die Skalierung ist nicht so schwierig, aber die Skalierung einer Datenbank ist ziemlich schwierig.


Antwort 2:

Python ist im Allgemeinen langsamer als Ruby. Aber es geht nicht darum, dass die Sprache langsam oder schnell ist. Es geht darum, wie Sie es optimieren, um es an Ihre Bedürfnisse anzupassen. Sie müssen N + 1-Abfragen vermeiden und Abfragen an die Datenbank haben, die optimiert sind.

Aber wenn das gesagt ist, werden beide sicherlich bis zu einem bestimmten Punkt skalieren ... wo Sie gegen die Wand stoßen werden.

Kein Standard-Framework wird für Sie so funktionieren, wie es ist, ohne Änderungen vorzunehmen, sobald Sie einen bestimmten Schwellenwert überschritten haben.

Ihre sicherere Wette wäre jedoch, sich für Elixir / Go zu entscheiden, wenn Sie planen, Ihre Website ohne Probleme für einige Millionen Benutzer zu starten. Ruby wurde 1993 für Computer entwickelt, aber diese Elixir und Go wurden unter Berücksichtigung der Parallelität entwickelt.

Ich empfehle Ihnen jedoch, Ihr MVP in Rails zu erstellen und dann eine Mikrodienstarchitektur für die Teile Ihrer Anwendung zu erstellen, die für Go / Clojure / Elixir leistungsintensiv sind


Antwort 3:

Nein, sie sind ungefähr gleich.

Die eigentliche Frage, die Sie sich stellen sollten: Ist die Leistung ein Schlüsselfaktor in meinem Projekt? Und warum?

Sie könnten denken, dass Sie eine hoch geladene App haben werden… Aber meiner Erfahrung nach müssen Sie einen langen Weg zurücklegen, um Tausende von Anfragen zu bearbeiten.

Wenn Sie sich nicht zwischen Rails und Django entscheiden können, empfehle ich Ihnen, dies zu überprüfen

Vergleich von Ruby on Rails und Django Performance

Schienen oder nicht Schienen? Das ist hier die Frage.

Gehen Sie mit Ruby on Rails, wenn Sie möchten:

  • um Ihr Projekt so schnell wie möglich zu starten
  • ein MVP oder einen Prototyp zu entwickeln
  • ein Startup oder einen Marktplatz aufzubauen

Gehen Sie mit Django, wenn Sie wollen:

  • um eine Web-App oder eine Website zu erstellen
  • in Zukunft Spitzentechnologie wie maschinelles Lernen zu integrieren.

Fazit: Der Unterschied zwischen der Leistung von Rails und Django hängt von der Art des Projekts ab. Es ist besser, ein Framework auszuwählen, indem Sie sich nicht nur auf die Leistung eines Frameworks konzentrieren, sondern dessen Vor- und Nachteile für IHR Projekt herausfinden.


Antwort 4:

Ich bin mir nicht sicher, ob Django selbst performanter ist oder nur die Python-Sprache. Es ist bekannt, dass Ruby eine langsame Sprache ist, aber wenn es um die Leistung von Rails geht, funktioniert es gut. Vielleicht kann Ihnen jemand anderes mehr Einblick geben.

Ich glaube, es ist auch wichtig zu beachten, dass es bei der Leistung nicht nur um die Geschwindigkeit von Abfragen usw. geht, da das Laden von Seiten von vielen Faktoren abhängt. Mit anderen Worten, Rails kann beim Laden von Seiten schneller sein als Django, wenn Sie es optimieren, aber das Gleiche gilt für Django.


Antwort 5:

Wenn Sie an einer eingehenden Untersuchung der Django-Leistung interessiert sind, empfehlen wir Ihnen einen Blick auf unsere

Mirumee Blog

. Unsere Serie „Django, fast“ befasst sich mit vielen verschiedenen Aspekten der Leistung von Django / Python auf verschiedenen Ebenen. Dort finden Sie einige allgemeine Richtlinien, die für fast alle Webanwendungen oder Frameworks gelten (

Der erste Teil

), eine eingehende Untersuchung und Benchmarks verschiedener Setups von WSGI-Servern und Python-Versionen, auf denen Django ausgeführt wird (

zweiter Teil

) sowie die Tipps und Vorschläge zum Profilieren, Messen und Beheben von Engpässen in Ihrer Django-Anwendung (

Dritter Teil

).

Haftungsausschluss: Als Unternehmen sind wir auf leistungsstarke Django- und Python-Anwendungen spezialisiert. Die Serie „Django, fast“ ist ein Versuch, unsere 8-jährige Erfahrung beim Schreiben geschäftskritischer und hoch skalierbarer Webanwendungen zu dokumentieren und zu teilen.