| | | | |
| |||||||
| Off-Topic Diskussionen Mach mal Pause vom Programmieren! |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 22.10.2008
Beiträge: 222
PHP-Kenntnisse: Anfänger ![]() | Hallo, ich bin momentan dabei ein Angriffssystem für ein BG zu schreiben.,. Dieses System funktioniert auch an sich soweit ganz gut.,. --> Ressourcenverteilung --> Kampf- und Überlebensberechnung, etc.,. Mein Problem ist, wenn ich mit sagen wir mal ca. 100.000 Einheiten unterschiedlichen Types angreife. Liegt der Wert laut memory_get_usage, so im Schnitt bei 100Mb, was leider mein Server zum erliegen bringt. ( Dient ja auch als Testserver ). Ich gebe alle Variablen, etc. was ich nicht mehr benötige immer sofort frei, trotzdem mache ich leider nur gering, bis keinen Speichergewinn damit. Dass System soll mal so ausgelegt sein, dass sich darin mehrere Millionen Einheiten bekämpfen können, was dann einen Speicherverbrauch von mehreren GB's ausmacht. Das Angriffsystem ist auch das einzige, was dann via Cronjob abläuft, da sich dieses einmal pro Min. aktualisieren muss, um die Kämpfe korrekt zu brechnen. Ist das normal, dass ein BG's solche Hohe Auslastung haben oder gehe ich diese Sache komplett falsch an? Würde mich freuen, wenn dazu ein paar Kommentare kommen, die mir die Sache etwas näher bringen und mir ggf. helfen könnten. ( Kein Code oder sowas , nur Theorie ) Viele Grüße
__________________ Learning by Doing --> Projekt eigenes BG <-- So lernt man am Besten alle Funktionen und kann sich dadurch viel aneignen --> Closed Beta Test <-- |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 22.10.2008
Beiträge: 222
PHP-Kenntnisse: Anfänger ![]() | Entschuldigung für den falschen Bereich.,. Danke fürs korrigieren.,.
__________________ Learning by Doing --> Projekt eigenes BG <-- So lernt man am Besten alle Funktionen und kann sich dadurch viel aneignen --> Closed Beta Test <-- |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 22.10.2008
Beiträge: 222
PHP-Kenntnisse: Anfänger ![]() | Die Berechnung läuft über eine separate Funktion, die in einer while Schleife solange durchläuft, bis eine Seite als Sieger hervor geht. Das eigentliche Problem ist folgendes.,. Was am meisten Speicher raubt. Ich lasse die Werte die über die Datenbank auslesen. z.B.: Einheit x = 500 mal vorhanden und dieses dann natürlich für alle Einheiten. Wert wird in einem mehrdiemensionalem Array gespeichert. PHP-Code: Sieht so aus.,. PHP-Code:
__________________ Learning by Doing --> Projekt eigenes BG <-- So lernt man am Besten alle Funktionen und kann sich dadurch viel aneignen --> Closed Beta Test <-- Geändert von _cyrix_ (17.11.2010 um 23:53 Uhr). Grund: Fehler im Code gehabt.,. |
| | |
| | |
| Moderator Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() | Mit dem freigeben von Speicher tut sich PHP bei verschachtelten Objekten schwer, zumindest bei PHP < 5.3. Vielleicht liegt da dein Problem, aber da kann man nur raten. Kannst ja mal http://www.phphatesme.com/blog/wtf/d...ector-von-php/ lesen. |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 22.10.2008
Beiträge: 222
PHP-Kenntnisse: Anfänger ![]() | Wie ist das Kampfsystem aufgebaut --> Es gibt 2 Unterschiedliche Typen --> Fahrzeuge, Fusstruppen und diese sind noch mal unterteilt --> Fahrzeuge 5 und Fusstruppen 7. --> 2 Parteien // Angreifer und Verteidiger --> Zusammensetzung in Kurzform ----> Wenn der erste Angriff kommt, wird alles, was innerhalb dieser Minute angreift, zum Angriff gewertet ----> Verteidiger ist ähnlich, unswar werden dort die eigenen Einheiten und die Unterstützungseinheiten zusammengerechnet. ----> Das passiert alles via Sql ( Funktion SUM ) Diese Werte muss ich wie oben geschrieben in einem Array speichern Die Aufschlüsselung, dass ich dann die einzelnen hochzähle kommt daher, dass im eigentlichen Kampf, immer "Mann gegen Mann" gekämpft wird. Wenn ich das hier hochzähle, werden im Schnitt immer 1300 Bytes zusätzlich belegt, was bei einer Einheitenmenge von 100k Truppen bei 13MB liegt. Was ja auch in Ordnung wäre, aber ich habe bei dieser Hochzählung schon den Fehler, dass er mir hier mit 55MB und mehr rechnet, was natürlich bei mehreren Einheiten fatal ist. Die Arrays werden vorm Kampf gemischt, dann tritt Angreifer 1 vs. Verteidiger 1 an usw.! Sind jetzt alle Einheiten einmal durch, aber es haben beide Seiten noch min. 1 Überlebenden, so wird der Kampf erneut stattfinden, bis eine Partei nicht mehr überlebt. Im Kampf spielen viele Sachen eine Rolle, Verteidigungswerte, Angriffswerte, Forschungswerte, sowie noch die Parameter von Gebäuden, etc.,. Wenn ich den Code dafür hier schreibe, wird das den Rahmen wohl nen bisschen sprengen. -- Das mit der Speicherfreigabe ist sehr interessant, meine Php - Version ist 5.2.* irgendwas, mal schauen, ob ich da was durch eine Aktualisierung machen kann. -- Nachtrag: Ich hab das noch mal durchgerechnet --> Wenn ich das KS so lasse, wie es ist, dann werden nur beim Zählen von ca. 10mio Truppen, Speicher von ca. 12GB verbraucht und dass dann wohl pro Minute im schlimmsten Fall. --> Werd mir dann wohl Gedanken machen müssen, die Auslastung zu reduzieren und dass drastisch, weil das wohl nicht sehr gesund und hardwareschonend klingt
__________________ Learning by Doing --> Projekt eigenes BG <-- So lernt man am Besten alle Funktionen und kann sich dadurch viel aneignen --> Closed Beta Test <-- Geändert von _cyrix_ (19.11.2010 um 00:34 Uhr). Grund: Erneute Messungen in der Speicherauslastung |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse: Fortgeschritten ![]() | Teil das doch in Häppchen auf bzw. mehrere Runden auf. Macht ja keinen Unterschied wenn es immer 1:1 ist. Je nachdem wie die Berechnung wer gewinnt aussieht, könntest du das ganze auch direkt als Stored Procedure auf der DB ausführen. Oder noch extremer gleich als UDF.
__________________ Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Performance Fragen | jwka61 | PHP Tipps 2010 | 7 | 17.11.2010 19:48 |
| Erneuern von Fragen | DasBlatt | PHP Tipps 2010 | 8 | 22.02.2010 15:30 |
| ein paar Fragen (wegen eines Loginhistory) | Ninos | PHP Tipps 2009 | 5 | 04.04.2009 14:59 |
| PHP/MySQL Softwareprojekt - grundsätzliche Fragen | spacemanspiff | Software-Design | 1 | 30.01.2009 14:40 |
| Renommee Funktion wirft Fragen... | tomtaz | Board-Support | 11 | 02.07.2008 21:18 |
| gettext, einige fragen | notyyy | PHP Tipps 2008 | 12 | 01.05.2008 12:09 |
| viele kleine Fragen... | moose | PHP Tipps 2006 | 7 | 26.05.2006 16:09 |
| 2 kleine Fragen: DB-Eintrag/Variable | PHP Tipps 2005-2 | 8 | 12.10.2005 14:18 | |
| Speicherverbrauch nimmt zu | Chr!s | PHP Tipps 2005-2 | 2 | 10.10.2005 19:15 |
| Generelle PHP Fragen | Madden | PHP-Fortgeschrittene | 3 | 11.04.2005 01:24 |
| [Erledigt] Allgemeine Anfänger Fragen | PHP Tipps 2004-2 | 5 | 20.12.2004 14:57 | |
| Fragen über Fragen :) | Igäl | PHP Tipps 2004 | 3 | 26.08.2004 08:59 |
| Viele Fragen für einen privaten Webserver | Server, Hosting und Workstations | 15 | 18.07.2004 22:35 | |
| [Erledigt] Fragen über Fragen... wer kann helfen? | PHP Tipps 2004 | 2 | 08.07.2004 21:12 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| day 1: the bacterium is born from a division of his \'mother\'. day 2: the bacterium divides itself into two bacteria (one of them is a brand new bacterium). day 3: the bacterium divides itself into two bacteria again (one of them is a brand new bacterium, \the bacterium is born from a division of his\, memory_get_usage einheit, scientists have noted that a member of a strange bacteria species has a cycle of life like this, a unique member of this kind has been collected by scientists. after 8 days, the population is 47. the question is: after how many days will the entire population of bacteria originated by this unique member reach the count of 1,000,000,000,000?, \scientists have noted that a member of a strange bacteria species has a cycle of life like this\, growing bacteria 47 1000000000000, \the bacterium divides itself into two bacteria\, day 1: the bacterium is born from a division of his \'mother\'., \a unique member of this kind has been collected by scientists. after 8 days, the population is 47. the question is: after how many days will the entire population of bacteria originated by this unique member reach the count of 1,000,000,000,000?\, challenge \'growing bacteria\' [misc], php objekte speicherverbrauch, growing bacteria \born from a division of his mother\ \1,000,000,000,000\ 5 days |