Forum: PC Hard- und Software Performanz / Last von Webanwendungen abschätzen


von D. I. (Gast)


Lesenswert?

Ich entwickle gerade ein kleines Browsergame mit PHP + MySQL. (Einheiten 
verwalten, Items kaufen, Ingameshop, Nachrichtensystem, üblicher Kram 
halt)

Ich besitze folgendes Hostingpaket:

http://all-inkl.com/webhosting/privatplus/

Wie kann ich grob abschätzen wieviele User (insgesamt/gleichzeitig) 
spielen können, bevor es zu Leistungseinbrüchen kommt? Ich habe da 
leider keine Erfahrungswerte, so dass ich nicht sagen kann ob ich die 
Userzahl erstmal auf 1000 begrenze oder ob es so ist, dass auch 10000e 
erstmal kein Problem darstellen für die Technik.

Ab wann muss ich mir über solche Probleme ernsthaft Gedanken machen?

von Ben _. (burning_silicon)


Lesenswert?

du mußt dir jetzt schon gedanken machen wieviele user überhaupt kommen.
ich glaube da lebst du in träumen.

ich hab selber zwei MMOGs geschrieben und krieg so gut wie keine 
kundschaft, daß ich überlege sie einzumotten...

von D. I. (Gast)


Lesenswert?

Ben _ schrieb:
> du mußt dir jetzt schon gedanken machen wieviele user überhaupt kommen.
> ich glaube da lebst du in träumen.

Tjo schwer zu sagen. Am Anfang rechne ich jetzt nicht mit dem Ansturm 
aber vielleicht überzeugt das Konzept doch und es wird tatsächlich mal 
4-stellig.

von Ben _. (burning_silicon)


Lesenswert?

viel glück! wirste brauchen.

es existiert da ein völliges überangebot bzw. wie immer können die 
wirklich großen OBGs den hals nicht voll kriegen. dazu kommt, daß das 
einzig gute an diesen großen OBGs die werbung, bedingt durch den 
kommerziellen betrieb, ist. das spiel selber ist dann oft verbugt bis 
zum geht-nicht-mehr oder andere dinge versauen den spielspaß, sodaß 
jeder neue spieler der es bei einem großen spiel von dem er mal gehört 
hat gründlich davon geheilt wird und nie wieder sowas anfasst weil 
"MMOGs ja alle scheiße" sind.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

D. I. schrieb:
> spielen können, bevor es zu Leistungseinbrüchen kommt
Kommt ganz stark auf deine Programmierkünste an, leider sind die ja 
nicht sehr auskunftfreudig auf der Seite, bei shared hostings gibt es 
meistens Laufzeit und Speicherbeschränkungen darauf sollte man dann 
achten und die begrenzen das ganze im Prinzip nur.
Ich würde erstmal anfangen... Wenn dann die hunderttausenden User da 
sind kannst du ja immer noch wechseln.

von D. I. (Gast)


Lesenswert?

Läubi .. schrieb:
> Kommt ganz stark auf deine Programmierkünste an,

Würde mal sagen fortgeschritten. Ich schau halt, dass ich möglichst 
ressourcensparend (und trotzdem lesbar) zurechtkomme, auf komplexe 
Operationen verzichten kann und die dynamische Typisierung nicht bis zum 
Anschlag ausreize.
Bei PHP habe ich noch nicht so das Gefühl bzw die Erfahrung was wie 
rechen/speicherintensiv ist. Wurste mich halt durch die einzelnen 
Methodenerklärungen auf php.net und schau mir die Kommentare dazu an.

Richtig nervig ist eigentlich bis jetzt nur dass es kein wirkliches 
method-overloading gibt, zumindest habe ich das noch nicht entdeckt. Ist 
dann immer bissl Parametergefummel.

von Chris R. (hownottobeseen)


Lesenswert?

D. I. schrieb:
> Würde mal sagen fortgeschritten

D. I. schrieb:
> Wurste mich halt durch die einzelnen
> Methodenerklärungen auf php.net

Ist das nicht ein leichter Widerspruch?

Zur Performancefrage: Ohne Quelltext und/oder andere Informationen kann 
man da recht wenig sagen. Wie intensiv nutzt du die Datenbank? 
Verwendest du im Code und in der DB viel Vererbung bzw. Joins o.ä.?

Probier ggf. mal die Demoversion von Zend Studio. Die kann deinen Code 
bis zu einem bestimmten Maß analysieren und beim optimieren helfen.

Wenn du doch mal sehr viel Serverlast hast, musst du bei all-inkl etwas 
aufpassen. In den AGBs steht IIRC dass sie bei Community-Sites die über 
ein bestimmtes Maß hinausgehen den Hahn abdrehen. Wo das Maß ist und 
inwieweit die Vorgehensweise ist, weiß ich allerdings nicht.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

D. I. schrieb:
> Richtig nervig ist eigentlich bis jetzt nur dass es kein wirkliches
> method-overloading gibt
Man kann in PHP ähnlich wie bei C++ defaults vorgeben meinst du sowas?
1
function tuwas($param1, $param2="somethingAsDefault")

von TestX .. (xaos)


Lesenswert?

D. I. schrieb:
> Ich besitze folgendes Hostingpaket:
>
> http://all-inkl.com/webhosting/privatplus/

also ohne serverseitige sachen wie java etc. ein browsergame zu 
schreiben, dass  noch relativ performant ist... unmöglich
was du brauchst ist ein eigener server (erstmal virtual, später 
dediziert) und kein 0815 mini hostingpaket.
kannst ja bei all-inkl mal anfragen, mehr als 100 wirds sicherlich nicht 
werden mit dem paket..

von D. I. (Gast)


Lesenswert?

Chris R. schrieb:
> D. I. schrieb:
>> Würde mal sagen fortgeschritten
>
> D. I. schrieb:
>> Wurste mich halt durch die einzelnen
>> Methodenerklärungen auf php.net
>
> Ist das nicht ein leichter Widerspruch?

Naja beim Konstruktor zum Beispiel scheiterts schon (php 5.3.1):
1
class A
2
{
3
  public function __construct($arg1)
4
  {
5
6
  }
7
8
  public function __construct($arg1, $arg2)
9
  {
10
11
  }
12
}

Ich kann verstehen dass es nicht geht wenns gleich viele Parameter gibt, 
da die schwache Typisierung den Typ nicht checken kann wie bei Java z.b.
aber dass auch das nicht geht ist ärgerlich.
Also muss man sich mit diesem default parameter value dingens behelfen, 
ne andere praktikable Lösung ist mir noch nicht untergekommen.

Nein Datenbank Operationen habe ich bisher nur simple. INSERT / 
einfaches SELECT / UPDATE. Was ich noch nutze sind Transaktionen (InnoDB 
Engine), wenn mehrere Dinge geändert werden müssen wie bei Käufen, also 
item von nutzer1 weg, item zu nutzer 2 hinzufügen, geld abziehen, geld 
hinzufügen, da das ja atomar geschehen muss.

von D. I. (Gast)


Lesenswert?

Andi D. schrieb:
> also ohne serverseitige sachen wie java etc. ein browsergame zu
> schreiben, dass  noch relativ performant ist... unmöglich

Naja in so einer Liga wie Dark Orbit oä BigPoint Produkte wirds nicht 
spielen, den Grad an Interaktion wirds auch nicht haben, zumal ich kein 
Fan von diesem Flash-Gerümpel bin.

Ich sehe nicht warum man nicht mit PHP+MySQL + Photoshop / Illustrator 
fähigen Freundin nix ansehnliches hinbekommen sollte.

Ist ja in erster Linie auch nur ein Hobbyprojekt zur persönlichen 
Fähigkeitenerweiterung, aber man weiß ja nie obs nicht doch Anklang 
findet und möchte daher Performance-Aspekte berücksichtigen.

Shakes & Fidget z.B. ist spielerisch gesehen relativ primitiv, es sieht 
halt gut aus.

Wenn eine erste Version mit ein paar Features fertig ist stelle ich es 
einfach mal hier rein ;) Glaube nur nicht dass ihr thematisch die 
Zielgruppe sein werdet :D

von Chris R. (hownottobeseen)


Lesenswert?

D. I. schrieb:
> Ich kann verstehen dass es nicht geht wenns gleich viele Parameter gibt,
> da die schwache Typisierung den Typ nicht checken kann wie bei Java z.b.
> aber dass auch das nicht geht ist ärgerlich.

ja, das ist wirklich ärgerlich. Starke typen sollen irgendwann mit PHP6 
kommen.
Für Overloading gibt es glaube ich (ähnlich wie für Javascript) eine 
Bibliothek, die die Sache aber nicht viel besser macht...
Ich habe für mich einen kleinen Workaround für Overloading gemacht: Ich 
prüfe, ob die Objekte, die ich übergebe, die sind, die ich erwarte:
1
$ismyobj = is_object($object) === true ? get_class($object) == get_called_class() : false;

Ferner kann man mit func_get_args() die Argumente beim Funktionsaufruf 
ermitteln - ist an manchen Stellen sehr hilfreich.

von D. I. (Gast)


Lesenswert?

Ja so in etwa mache ich das auch. Ist halt nur kacke, dass dann eine 
Methode eben unendlich lang wird anstatt mehrere kleine Methoden zu 
haben ;)

Artet halt in eine if-else kaskade aus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.