Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1776 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Fuite memoire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS] Fuite memoire ?

n°1421887
azubal
Posté le 07-08-2006 à 21:01:05  profilanswer
 

Bonjour,
j'ai ecrit un petit script vbs que je schedule sur un serveur toutes les 5 minutes. Au bout de quelques jours, j'ai constaté une augmentation significative de la memoire utilisé et apres investigations, il semblerait que ce soit le script qui grignote petit a petit ma RAM.  :heink:  
 
Voici un apercu apres un reboot :
http://pix.nofrag.com/0e/90/05fad26c031daacfdddf18ac2709.jpeg
 
 
Ce qui me parait mysterieux, c'est qu'avec VBS il n'y a pas de gestion de la memoire.
 
 
voici le script en question :  
il s'agit d'un script qui releve le traffic total entrant et sortant d'une machine et fait des traitements dessus afin de pouvoir donner le vrai traffic entrant et sortant sans limites (car le systeme stocke les valeurs sur 32 bits ce qui provoque un retour a 0 des compteurs tous les 4Go de traffic).
 

Code :
  1. int32 = "4294967296"
  2. fileName = "temp.dat"
  3. ' 5 minutes pour du 100Mbps
  4. init
  5. sub init()
  6.         strComputer = "."
  7.         Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2" )
  8.         Set objNet = objWMI.InstancesOf("Win32_PerfRawData_Tcpip_NetworkInterface" )
  9.         received = "0"
  10.         sent = "0"
  11.         ' fait le total dans dans le cas de plusieurs interfaces
  12.         For Each obj In objNet
  13.                 received = received + obj.BytesReceivedPersec
  14.                 sent = sent + obj.BytesSentPersec
  15.         next
  16.         ' resoud un probleme de cast
  17.         if (sent < 0) then
  18.                  sent = sent + int32
  19.         end if
  20.         if (received < 0) then
  21.                  received = received + int32
  22.         end if
  23.         ' cree le fichier qui contient les infos.
  24.         set fso = Wscript.CreateObject("Scripting.FileSystemObject" )
  25.        
  26.         ' si le fichier n'existe pas... On le crée.
  27.         if not fso.FileExists(fileName) then
  28.                 writef fso, fileName, sent, received, sent, received
  29.         end if
  30.         readf fso, fileName, sent, received
  31. end sub
  32. Sub readf(fs, file, sent, received)
  33.         ' Read the contents of the file.
  34.         Set ts = fs.OpenTextFile(file, 1)
  35.         ltrafficSent          = ts.ReadLine
  36.         ltrafficReceived      = ts.ReadLine
  37.         ltotaltrafficSent     = ts.ReadLine
  38.         ltotaltrafficReceived = ts.ReadLine
  39.         ts.Close
  40.      
  41.         if sent < (ltrafficSent + 0) then
  42.                 ltotaltrafficSent = ltotaltrafficSent + (sent + (int32 - ltrafficSent))
  43.         else
  44.                 ltotaltrafficSent = ltotaltrafficSent + (sent - ltrafficSent)
  45.         end if
  46.         if received < (ltrafficReceived + 0) then
  47.                 ltotaltrafficReceived = ltotaltrafficReceived + (received + (int32 - ltrafficReceived))
  48.         else
  49.                 ltotaltrafficReceived = ltotaltrafficReceived + (received - ltrafficReceived)
  50.         end if
  51.         writef fs, file, sent, received, ltotaltrafficSent, ltotaltrafficReceived
  52.        
  53.         ' affiche le resultat
  54.         WScript.Echo ltotaltrafficSent & " " & ltotaltrafficReceived
  55. End Sub
  56. sub writef(fs, file, trafficSent, trafficReceived, totalTrafficSent, totalTrafficReceived)
  57.         set f1 = fs.CreateTextFile(file, True)
  58.         f1.WriteLine(trafficSent)            ' valeur compteur precedent
  59.         f1.WriteLine(trafficReceived)        ' valeur compteur precedent
  60.         f1.WriteLine(totalTrafficSent)       ' valeur compteur total precedent
  61.         f1.WriteLine(totalTrafficReceived)   ' valeur compteur total precedent
  62.         f1.Close
  63. end sub


 
 
Je ne comprends pas tellement d'ou peut venir le probleme :/

mood
Publicité
Posté le 07-08-2006 à 21:01:05  profilanswer
 

n°1422005
Taz
bisounours-codeur
Posté le 07-08-2006 à 23:43:24  profilanswer
 

azubal a écrit :

Bonjour,
j'ai ecrit un petit script vbs que je schedule sur un serveur toutes les 5 minutes.


ben alors c'est pas lui ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] Fuite memoire ?

 

Sujets relatifs
Probleme de MemoireConnaître la mémoire libre de la JVM?
manipulation de std::vector problème de mémoireLancer une commande DOS avec une variable dans un VBS
Coller une valeur en mémoire en provenance d'excel dans une macro[flash/AS] Fuite de memoire
[.NET] Objet Graphics, DrawImage et occupation mémoire[opengl]Pb: liberation mémoire textures [RESOLU]
Plus de sujets relatifs à : [VBS] Fuite memoire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR