optimisation, mémoire, et objets
bonjour,
je vais essayer d'être clair même si ça va m'être difficile.
j'utilise moose.
j'ai des instances de classe qui ont besoin chacune de données les concernant qu'elle doivent puiser dans plusieurs gros fichiers texte. d'environ 400 000 lignes pour le plus gros pour le moment. le choix du fichier texte plutôt que la bases de donnée est personnel.
La première solution était que chaque instance parcourt le fichier avec fopen pour puiser ses ressources.
Puis ... j'ai vu la très http://www.youtube.com/watch?v=4JgHwlYFlPY de Lolo (si j'ai bien compris) à laquelle je n'ai pas compris grand chose pour le fond, mais m'a fait penser (j'aurais peut être pas du) :D
j'ai donc tenté de créer une fabrique d'instances de classe qui allait chercher le gros fichier une fois pour toute et qui allait implanté dans chaque instance les lignes qui la concernait...
Deux choses
la première c'est que je me suis rendu compte que ça ne pouvait fonctionner qu'avec certains type de besoins ( de données) , car d'autres besoins ne pouvaient être connus à l'instanciation de la classe.
la seconde c'est que que la vitesse d'exécution était sensiblement la même dans les deux cas à vue de nez. Un fopen depuis la fabrique pour remplir un tableau ce qui fait un premier parcours des données, un premier tri et donc un autre parcours des données aux instanciations, puis un traitement par l'instance mais sur un nombre réduit de données
et puis je me suis dit que puisque de toute façons , les données de chaque instances n'etaient que des références aux données contenu dans la fabrique autant tout passer à l'instance en bloc, ce qui simplifie les choses , élimine un tri aux instanciations, mais allonge le temps de traitement des données par chaque instances.
bref, mis à part le fait que le traitement ne se fait plus par un accès disque mais par un accès mémoire. J'ai l'impression d'être revenu au point de départ.
la question est : quelle est la bonne solution ?