Ich versuche, eine Social-Networking-Android-Anwendung zu entwickeln, die riesige Datenbank von Benutzern enthält. Ich bin sehr neu in der Android App Entwicklung und versuche die Konzepte hinter der App Entwicklung zu verstehen. Ich verwende folgende Technik:Wo werden komplexe Algorithmen ausgeführt? Serverseite oder Clientseite?
1) MYSQL + PHP (RESTful Web Services) 2) Android Studio (Java)
In der Anwendung muss ich für das Ranking Benutzer das Sammeln von Daten von einige komplexe Algorithmen laufen verschiedene Tabellen aus der Datenbank im Cloud-Server.
Meine Frage ist "wo diese Algorithmen laufen?". Sollte ich Code in PHP schreiben, um die Algorithmen serverseitig laufen zu lassen und dann diese Daten an den Client senden (oder) Sollte ich den Code in JAVA (Android Studio) schreiben mit Daten vom Server gesammelt.
Wie wird sich die Leistung meiner App in beiden Fällen unterscheiden?
Bearbeiten: Vielen Dank für Ihre Antworten.
Ich habe eine Idee auf Async Tasks und Multi Threading.
Dieser Zweifel kam zu mir als Ranking ist für alle meine Benutzer üblich, es gibt einen Unterschied. Wenn ich den Rechenalgorithmus auf der Serverseite einstelle, obwohl die Ergebnisse für alle Benutzer gleich sind, muss derselbe Algorithmus mehrmals ausgeführt werden (sagen wir, wenn es 10000 Benutzer gibt, läuft derselbe Algorithmus 10000 mal auf der Serverseite). Aber wenn ich auf die Kundenseite setze, kann ich das vielleicht übertreffen. Aber brauchen Expertenlösung zu diesem Thema.
Da Ihre Algorithmen komplex sind, wäre es besser, auf dem Server zu laufen und nur das Ergebnis an den Client weiterzugeben, da es die App reaktionsfähiger macht – Prabu
Hängt von Ihren Ressourcen, Ihrem Budget und Ihrer Monetarisierung ab. Wenn Ihre Kunden zahlen, um diesen Algorithmus zu erledigen, können Sie serverseitige Lösungen bereitstellen, andernfalls müssen Sie auf Ihr mobiles Gerät zurückgreifen. Es hängt auch davon ab, wie schnell es auf dem mobilen Gerät läuft. Dauert es weniger als 100ms, dann sollte es Ihnen egal sein, wenn es etwas ist, auf das der Benutzer explizit warten möchte, kann es sogar bis zu 8-10 Sekunden dauern. – HopefullyHelpful
Wenn Ihr Algorithmus ein Geschäftsgeheimnis ist, das viel Zeit und Geld in Anspruch nimmt, sollte er auch niemals in der App ausgeführt oder gespeichert werden, da er reverse engineered sein kann. – HopefullyHelpful