Je viens de vérifier et c'est incompréhensible. Théoriquement ca devrait prendre la même place, là ca en prend presque 10 fois plus...Ils prennent plus de place parce qu'ils nécessitent plus de place... C'est aussi simple que ça. Je ne connais pas les détails techniques de façon intime, mais si tu fais un tour du côté de n'importe quel article sur les performances ou du côté des mailing list de PHP tu trouveras sûrement des infos à ce sujet.Je ne vois pas pourquoi les objets, ca prendrait beaucoup plus de place que les variables classiques...
Y a une raison particulière pour que tu répondes comme ca ou t'es toujours comme ca ?...et puis vu qu'on va tous mourrir un jour ça sert à rien de vivre. Si ta page est lente, raison de plus de ne pas l'alourdir encore plus.
Bah franchement, c'est pas bien compliqué, mais vu ta facon de répondre, et vu que t'es pas concerné par le problème je répondrais a l'auteur de la question si ca l'interesse, toi, je te laisse dans tes certitudes.Très bien, j'aime bien les caches, merci d'avoir utiliser ce terme. Mais comment penses-tu implémenter un "cache" sur un jeu qui stocke 1000 objets pour représenter tes adversaires ?
Quels impératifs ? il a donné des contraintes sur l'utilisation de la ram de son serveur ? Il a signalé un pb de perf ou de swap ? T'as l'air facher avec la ram, faut pas faire d'objet pour pas l'user ?Cela ne règle pas non plus les impératifs d'utilisation de la mémoire.
Ça s'appelle un raisonnement par l'absurde. On ne peut pas justifier l'utilisation d'une méthode particulièrement lente par le fait que l'application est déjà lente, comme on ne peut pas dire que ça ne sert à rien de vivre puisqu'on va tous mourrir.Y a une raison particulière pour que tu répondes comme ca ou t'es toujours comme ca ?
Je t'en prie, si c'est pas bien compliqué j'aimerais bien qu'on en parle dans ce sujet même. Je serais curieux d'en savoir plus sur l'approche que tu préconiserais dans ce cas. Je suis désolé que tu aies mal pris ma "façon de répondre", mais si tu veux bien expliciter ce système de cache dont tu parlais je serais heureux d'en discuter. Ce serait dommage que l'on reste chacun sur nos certitudes, non ?Bah franchement, c'est pas bien compliqué, mais vu ta facon de répondre, et vu que t'es pas concerné par le problème je répondrais a l'auteur de la question si ca l'interesse, toi, je te laisse dans tes certitudes.
Entre autres ceux du php.ini chez les hébergeurs mutualisés, sinon ceux de la RAM physique. Mais puisqu'il ne s'agit que d'un script de maintenance exécuté sur un ordinateur personnel c'est un point qui a moins d'importance.Quels impératifs ?
La réponse est simple, oui, dans les langages bien fait, c'est une bonne pratique puisqu'un objet n'est pas sensé prendre plus de place que les variables réelles, puisque normalement, dans un obje, on ne stocke pas les noms de variable, et évidemment pas les fonctions non plus...Ensuite, je pense qu'on met plus en péril la maintenabilité du code en forçant des concepts étrangers qu'en utilisant la POO de PHP 5. Je ne sais pas si en Java ou C++ instantier 2000 objets est une bonne pratique, mais je sais qu'en PHP ça ne l'est pas.
Conceptuellement ce n'est pas un erreur. Disons que ca risque de devenir lourd s'il doit stocker toutes ses variables dans des tableaux multidimentionnels, par contre créer un objet pour stocker tous les objets, je conviens que c'est une erreur, puisque ce n'est pas du tout nécessaire...D'autant plus que dans le jeu les 1000 vaisseaux en question ne font pas tous quelque chose, on n'a besoin de n'instancier que ceux qui vont faire quelque chose mais alors le concept d'une collection d'objet (pour le peu que j'en comprends) perd de son attrait.
public function un_au_hasard()
{
return $this->obj[mt_rand(0, count($this->obj) - 1)];
}
Dans certains cas, plutôt que d'appliquer ton filtre à tous les objets de ta collection puis en tirer un au hasard, il est plus performant de faire le contraire : en tirer un au hasard, voir si c'est une cible valide et recommencer si nécessaire. C'est une approche dite "optimiste". Ça ne marche que si tu as de bonnes probabilités de tomber sur le bon dans les premiers coups, et que les calculs pour en tirer un au hasard n'excèdent pas les calculs pour filtrer toute la collection.