online faq recherche accueil
 

Il y a 63 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Fuite de mémoire Snif :'(

 
n°4589558
varok
Posté le 20-04-2007 à 18:01:23  profilanswer
 

Bonjour tout le monde  
 
      -Alors voila j’ais un problème de fuite de mémoire  
mais j’ais pas trot compris comment la supprimé.
D’après se que j’ais vue sa viendrais du fort  
taux de création de mob sur ma carte un mob tous les 0.20 sec :p
 
Alors voila mon trigger si quelle qu’un pouvais me dire se que je dois mètre  
pour éviter ce problème ca serais sympa ( je précise que les mob de survive pas plus de quelle  
que secondes).
http://img252.imageshack.us/img252/8904/editeurlc5.jpg


Message édité par varok le 20-04-2007 à 18:41:04
n°4589571
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 20-04-2007 à 19:32:07  profilanswer
 

Hmm l'es bizarre ton déclencheur tu ordonnes au dernier groupe créé de se déplacer périodiquement aux mêmes points ?
Tu changes la référence de tes points, tu créés d'autres groupes unité ?


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589573
varok
Posté le 20-04-2007 à 19:38:10  profilanswer
 

Les régions de d'épart son généré aléatoirement
Et les régions d'arriver aussi
 
Les unités en une chance sur 30 d’être crée sur une région  
Et ils vont vère une région d’arriver parmis 30
 
voilou  :)
 
Et ca marche tres bien ^^ sauf au bout du 4 tours ca commance a ramer  :fou:


Message édité par varok le 20-04-2007 à 19:41:18
n°4589576
Maximaxou
rejoignez les fidèles du JASS
Posté le 20-04-2007 à 20:20:26  profilanswer
 

Il faut que tu nous montre tous les déclencheurs ayant un rapport avec celui-ci.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589577
varok
Posté le 20-04-2007 à 20:20:56  profilanswer
 

oki  
Le random de la region d'arrivé:
http://img253.imageshack.us/img253/6067/editeurrandomarriverns8.jpg
 
Le random pour savoire ou va etre invoquer l'uniter :
http://img442.imageshack.us/img442/7177/editeurrandomdepartqe7.jpg
 
ici il faut retenire: "set les_BOMM = xxx" sa indique quelle unité sezra invoquer
en 2 parite;
http://img249.imageshack.us/img249/2950/editeurboomt4fj5.jpg
 
Suite
 
http://img443.imageshack.us/img443/773/editeurboomt4p2az3.jpg


Message édité par varok le 20-04-2007 à 20:39:19
n°4589587
Sogara
What else ?
Posté le 21-04-2007 à 13:48:21  profilanswer
 

Disons que vu toutes les variables utilisées et réactualisées en périodique ça ne m'étonne pas que ça rame :X...
 
Essaye d'allèger tout ça, mais sinon...


---------------
"Prouver que j'ai raison reviendrait à accorder que je puisse avoir tort."
n°4589620
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 21-04-2007 à 14:13:02  profilanswer
 

ce n'est pas le fait d'utiliser des variables qui causent ce leak , au contraire rajoute une variable pour le last created group


Message édité par Troll-Brain le 21-04-2007 à 14:15:08

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589628
varok
Posté le 21-04-2007 à 14:41:15  profilanswer
 

Mercie de la réponse.
 
      En clair plus je fous des variable partout moins la  ram va augmenter  :heink:  
Pour mon exemple si je fais une variable comme sa :
          - set Groupe_unité = (Last create unit group)
et hop c’est bon ^^
 
   Si faut juste faire ca pour régler le problème de fuite de mémoire c’est cool. :)  
Je pensais que sa serais plus compliqué. :bounce:
 
Mdr Sorgara a chaque foi que tu répons a un de mes poste du répond a coter  
Mais merci quand même de te préoccupé de mes probleme.  :jap:  
 


Message édité par varok le 21-04-2007 à 14:54:39
n°4589630
varok
Posté le 21-04-2007 à 15:14:27  profilanswer
 

Snif  :sweat:  
 
J'ais ramplacé le -"Last create unit groupe" par une variable "Groupe_unité = Last creat unit group"
mais les mob de ce dépace plus ils restent sur la région ou ils apparaisse  :fou:  
 
sinon je dois crée 30 groupe d'unité (une pour chaque région ou ils apparaise)
et metre un déploiment pour mon Groue_unité.
j'espere qu'il y a un autre moyen  :cry:


Message édité par varok le 21-04-2007 à 15:14:55
n°4589631
Maximaxou
rejoignez les fidèles du JASS
Posté le 21-04-2007 à 15:33:15  profilanswer
 

   Quand tu fais set un_point = center of xxx, tu crées un point, et ta variable un_point pointe sur le point créé. En fait un_point ne contient par le point directement, mais son adresse en mémoire. Quand tu redéfinies un_point à nouveau, tu perds le premier point, et tu en crées un nouveau, sur lequel ta variable pointe. La création de points est la grande majorité des cause de leak. Pour éviter ça, il faut supprimer le point vers lequel pointe ta variable, avant de pointer vers un nouveau point. Ceci par le custom script suivant : call RemoveLocation( udg_un_point ).
(il faut ajouter udg_ devant le nom de ta variable car c'est du jass directement, et non du GUI)
Désolé de répondre si brièvement, mais je n'ai pas beaucoup de temps là. (mais c'est de la que viennent tes leaks)


Message édité par Maximaxou le 21-04-2007 à 15:34:35

---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589633
varok
Posté le 21-04-2007 à 15:58:29  profilanswer
 

Alors si j'ais bien compris je rajoute udg_ devant le nom de ma variable  
et a la fin de mon d'eclancheur qui, Random les points ou qui dit ou doive allé les unites (premier déclancheur de mon poste) ?
je rajoute:-"Custom script :call RemouveLocation( udg_"le nom de ma variable" )". ?
 
J'ais bien compris professeur Maximaxou ?


Message édité par varok le 21-04-2007 à 15:58:45
n°4589634
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 21-04-2007 à 16:07:06  profilanswer
 

ah merde j'avais pas vu qu'il redéfinisait les points périodiquement, étant donné que c'est des centre de régions je pensais qu'il les créait seulement à l'initialisation, mais pourquoi en fait, tu deplaces tes regions ? :heink:
Si ce n'est pas le cas crée tes points à l'initialisation.

 

Et change périodiquement seulement la valeur de Rdm_Region_Arrivee et de Rdm_Region_Arrivee dans un seul déclencheur.

 

Sinon en effet tu peux optimiser ton trigger Initialisation tour en utilisant des variables déployées.
Mais est ce vraiment nécessaire d'exécuter cette action 100 fois par seconde  :sweat:

 

En gui quand une variable se nomme : Variable_X
En jass ca donne : udg_Variable_X

 

Je ne vois pas où est ta création de groupe, pour moi tu le créais à l'initialisaton et c'est tout, ca n'apparait pas dans les déclencheurs que tu nous montre


Message édité par Troll-Brain le 21-04-2007 à 16:30:27

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589635
varok
Posté le 21-04-2007 à 16:31:58  profilanswer
 

Je t’explique  
 
-Déjà c’est pour 6 joueurs.
-Ma carte consiste que chaque joueur est  un 1 héro.  
-Au bout de 30 sec les 6 héros se font téléporter au centre  
d’une arène et a ce même moment des "missiles"  apparaisse sur  
les cotés de l’arène pour s’écrasé contre les parois de l’arène.
-Et les héros doive les éviter sinon ils meurent et rez au milieu de l’arène  
et perde xx point sur le score du tour  le tour dur par défaut 80 sec.  
-Au bout des 80 sec les 6 héros se font téléporter a l’extérieur de l’arène.  
-Leurs score du tour s’additionne avec le score total.  
-Ils ont 30 sec pour acheter des objet avent de retourner dans l’arène pour le tour suivent.
-Et chaque tour a des "truk" spécial comme des mortiers qui tire dans l’arène ECT …
 
Voila pour quoi j’ais des régions de départ  ou son crée les « missiles » et des régions  
d’arriver ou les "missiles" se font détruire.
Et si je faisais pas le random ils apparaîtrais toujours au mémé endroit et irons toujours s’écraser au mémé endroit ^^


Message édité par varok le 21-04-2007 à 16:35:38
n°4589636
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 21-04-2007 à 16:34:19  profilanswer
 

ca m'explique rien du tout xD
Pourquoi 100 fois par seconde omg, et pk tu redefinis les points tous les 0.10 s à l'init ca suffit ...
et puis je vois toujours pas où est la création de groupe unité ...


Message édité par Troll-Brain le 21-04-2007 à 16:35:04

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589637
varok
Posté le 21-04-2007 à 16:42:26  profilanswer
 

C’est vrais que je pourrais redéfinir les point tous les 0.20 sec car ses tous les  
0.2 sec que je crée un mob « les missiles » mais si ils changerais  
pas ils se créer toujours au mémé endroit et il irais s’écraser toujours au mémé  
endroit et c’est pendant les 80 sec que les mob se crées
 
Et ces vrais que je pourasi métre autre chose les 100 foi pas sec  :p


Message édité par varok le 21-04-2007 à 16:43:41
n°4589638
varok
Posté le 21-04-2007 à 16:54:57  profilanswer
 

euuuu pour la création du groupe tu me pose une cool   :heink:  
mais bon sa marche  :p

n°4589653
Maximaxou
rejoignez les fidèles du JASS
Posté le 21-04-2007 à 17:50:53  profilanswer
 

Bon c'est vrai que c'est un peu du n'importe quoi cke ta fé. Tu redéfinis les points de départs et d'arrivée dix fois par seconde, sans rien changer. Il suffit de le faire une fois a l'initilisation. De plus, ton set random bidule = random integer between x and y, tu devrais le faire à la création des mobs. Seul le trigger de création des mobs doit être périodique. Sinon, ne fais pas pick every unit in last created unit group, mais tout simplement last created unit.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589657
varok
Posté le 21-04-2007 à 18:02:13  profilanswer
 

a ok
je commance a comprandre  
sa fait pas longtemps que je connais les randoms ^^
mais je voie mintenent de quoi vous me parlez  :D  
Sinon je le place ou le call RemoveLocation( udg_un_point ).  

n°4589660
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 21-04-2007 à 18:09:00  profilanswer
 

varok a écrit :

a ok
je commance a comprandre  
sa fait pas longtemps que je connais les randoms ^^
mais je voie mintenent de quoi vous me parlez  :D  
Sinon je le place ou le call RemoveLocation( udg_un_point ).


 
Plus besoin tu créés les points une seule fois, à l'initialisation de la map


---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589664
varok
Posté le 21-04-2007 à 18:31:41  profilanswer
 

Cool ok merci tout le monde  
 
j'ais une autre question mais men souvien plus  :??:

n°4589677
Maximaxou
rejoignez les fidèles du JASS
Posté le 21-04-2007 à 19:50:56  profilanswer
 

Citation :

Plus besoin tu créés les points une seule fois, à l'initialisation de la map


Si t'étais aussi perfectionniste que moi tu lui dirais où le mettre ^^.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589678
varok
Posté le 21-04-2007 à 19:55:00  profilanswer
 

Je fais quoi alors ?    
je dois metre ou pas ?  :heink:

n°4589679
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 21-04-2007 à 19:55:01  profilanswer
 

tu detruis le point utilisant comme référence la variable que tu vas setter, puis tu set ta variable avec le dernier point créé. Voilà  :D
Mais non tu ne dois surtout pas le mettre sinon tu n'auras plus de points >.<


Message édité par Troll-Brain le 21-04-2007 à 19:55:46

---------------
Je ne prends que sur rendez vous.
Assurez vous d'avoir un moyen de paiement conséquent, et de préférence en liquide, avant de me quémander la moindre question.
 
n°4589729
Maximaxou
rejoignez les fidèles du JASS
Posté le 22-04-2007 à 19:36:42  profilanswer
 

Ah ben oui où avais-je la tête -.-
 
Par contre tu peux les supprimer une fois que tu en as plus besoin, quand tu ne fais plus spawn de monstres. (si c le cas à un moment)


Message édité par Maximaxou le 22-04-2007 à 19:38:16

---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589753
varok
Posté le 23-04-2007 à 17:35:37  profilanswer
 

Ba j'arret de spawn des monstre entre 2 tour  
mais comme je les reprand apres ca vaux le coups  
de le faire ?

n°4589756
gro_shaman
Ah... World edit...
Posté le 23-04-2007 à 20:25:17  profilanswer
 

Non je pense pas, etant donné que tu vas les réutiliser... A moins que tu fasses des trucs particuliers pendant la pause (qui boufferaient de la memoire).


---------------
http://www.acathla.com/
n°4589757
Maximaxou
rejoignez les fidèles du JASS
Posté le 23-04-2007 à 21:43:56  profilanswer
 

En effet, il ne faut supprimer les points que si tu ne feras plus de spawn de monstres ici.


---------------
Dota c'est bien, le slide c'est encore mieux !
n°4589773
varok
Posté le 24-04-2007 à 19:36:27  profilanswer
 

oki  
merci bcp de votre aide


Aller à :
Ajouter une réponse