Hatte ein Gespräch mit jemandem über das Hinzufügen von Initialisierungscode beim Start der Anwendung und er beschwerte sich darüber, was zu einer Verlängerung der Startzeit führte. Er konnte nicht wirklich einen Grund angeben (Bauchgefühl oder so, weiß nicht). Dies ist keine stark beanspruchte Anwendung und startet in ungefähr einer Minute. Wir stellen sie einige Male im Jahr bereit.
Ich erinnere mich, dass ich vor einiger Zeit solche Ratschläge zu Fragen zu SO gelesen habe. Leute rieten, beim Start statt beim Zugriff auf die Seite mit dem Stempel "Wenn Sie sich die Strafe leisten können" zu initialisieren.
Ich habe mit Web-Apps gearbeitet, die von 30 Sekunden bis 4-5 Minuten gestartet sind, aber als sie online waren, haben sie gerockt.
Also, was vermisse ich? Ist die Startzeit wirklich so wichtig, es sei denn, es handelt sich um eine wichtige Anwendung wie ... ich weiß nicht ... für den Finanzmarkt, medizinische Anwendungen, Weltraumforschung usw.?
PS Ich beziehe mich ausschließlich auf Web-Apps. Desktop-Apps werden blitzschnell starten.
quelle
Antworten:
Dies kann während der Entwicklung ein wichtiger Faktor sein: Wenn Ihre Plattform das Ändern von Code in einer laufenden Anwendung nicht unterstützt, wird die Startzeit Teil Ihres Feedback-Zyklus, und selbst 30 Sekunden sind schmerzhaft und gefährden die Produktivität.
Für die Produktionsumgebung spielt es wirklich keine Rolle; Entweder ist eine kleine Ausfallzeit akzeptabel und 5 Minuten sind immer noch nicht viel, oder es ist nicht so, und Sie müssen eine Art Live-Umschaltung implementieren.
quelle
Ich glaube, dass dies der Fall ist, wenn Hegels berühmtes dialektisches Prinzip des Übergangs von Quantität zu Qualität tatsächlich funktioniert.
Sie sehen, das Timing ist immer wichtig. Ich stimme Michael Borgwardts Worten über die Wichtigkeit eines schnellen Builds während der Entwicklung / des Testens zu, aber ich bestehe darauf, dass es (möglicherweise auf andere Weise) auch für die Produktion sehr wichtig ist.
Jeder Entwickler, der fehlerhaften Code für die Produktion bereitgestellt hat, weiß, dass Hotfixes, die in 5 Minuten und in 1 Minute bereitgestellt werden, wirklich, wirklich verschiedene Dinge sind.
quelle
Die eigentliche Frage ist, ob die App ohne die Initialisierung funktioniert. Wir haben neue Mitarbeiter, die von "Leistung" besessen sind. Meine Aktienantwort lautet: Es ist mir egal, wie schnell Sie die falschen Ergebnisse erzielen. IMHO Abstriche machen, Algorithmen entstellen, weil "es auf diese Weise schneller wird" und andere großartige Ideen nur Fehler einführen.
Wenn die Initialisierung erforderlich ist, tun Sie dies. Wie viel Zeit wird verschwendet, wenn die Endbenutzer die falschen Ergebnisse erhalten, schließlich herausfinden, dass die Web-App falsch ist, Sie anrufen und sich beschweren und Sie zurückgehen und debuggen / reparieren / testen / neu bereitstellen müssen? Fragen Sie jetzt Ihren Kollegen, wie viel Zeit gespart wurde. (und ich wette, Ihre Server-Kerne sind sowieso zu 99% inaktiv)
quelle
Diese Frage bezieht sich nicht auf eine bestimmte Plattform. Es gibt Plattformen, auf denen die Startzeit wirklich sehr wichtig ist.
Zum Beispiel in Google App Engine; Wenn auf Ihre Seite nicht zugegriffen wird (oder weniger häufig als auf eine andere Anwendung auf demselben Knoten), wird sie gelegentlich entladen.
Wenn Sie also in der unteren 99% der Website - Zugriffshäufigkeit sind, dann Startzeit ist die Zugriffszeit; Ihre Anwendung wird bei fast jedem Zugriff neu gestartet. wenn Sie sind in dem Top 1%, dann Ihre Anwendung der ersten Schritte auf vielen Knoten auf, und obwohl viele Seitenzugriffe von einer bereits gestarteten Instanz zurück, einige werden noch nicht, und so werden Sie intermittierende haben, lange Zugriffszeiten .
Dasselbe gilt für viele andere Hosting-Umgebungen. Lecks in Bibliotheken von Drittanbietern oder sogar in Ihrem eigenen Code, die sich einfach der Entdeckung entzogen haben, können dazu führen, dass der einzige zuverlässige Weg, Ihren Webdienst auszuführen, darin besteht, alle so vielen Anforderungen (häufig zwischen 100 und 10.000) neu zu laden Die Startzeit wird häufig bezahlt. Die Verwendung dieses Musters ist akzeptabel, wenn eine App undicht ist, aber schnell gestartet wird. Es ist nicht funktionsfähig, wenn der Start der App länger als ein paar Sekunden dauert.
quelle
Sie laufen Gefahr, dass Ihre Anwendung als unterdurchschnittlich oder noch schlimmer als Ihre Entwicklungsfähigkeit eingestuft wird. Diese App spart möglicherweise jemandem so viel Zeit und / oder erledigt eine so benötigte Aufgabe, dass die dankbaren Benutzer über den langen Start hinausblicken können.
Es kann länger dauern, das Programm so zu programmieren, dass die App träge geladen wird, aber nur die Stakeholder können feststellen, ob es sich lohnt. Ich hatte einen Bericht, der in 55 Sekunden lief. und wir haben es auf 35 gebracht. Niemand hat es bemerkt. Obwohl ich doppelt so viel Zeit damit verbracht habe, es von 35 auf 18 zu bringen, haben es alle bemerkt und waren dankbar und beeindruckt. Es ist keine große Sache, für eine App, die einige Male im Jahr verwendet wird, von 5 auf 3 Minuten zu wechseln. Benutzer haben nur weniger Zeit, um auf Facebook zu verbringen oder Kaffee zu trinken.
Wahrnehmung ist der Schlüssel. Wenn das Unternehmen mit den Entwicklungsteams im Allgemeinen und dieser App im Besonderen nicht zufrieden ist, möchten Sie möglicherweise einen guten Willen aufbauen und die Sache beschleunigen.
quelle