probleme de performance avec scripting.filesystemobject

Le
Daniel Blais
Bonjour,
je dois parcourir un repertoire a la fois et afficher les noms des
fichiers et sous-repertoire et c'est tres slow à l'occasion. Le serveur
n'est pas très occupé.

voici mon code (asp) (moins le code html) :

set fso = server.createobject("scripting.filesystemobject")
set fold = fso.getfolder(basedir)
for each fold2 in fold.subfolders
fname = fold2.name
%>
<%=fname%>
<%
end if
next
set fold2 = nothing


Par exemple, un repertoire qui contient 700 sous-repertoire (aucun
fichier), ca prend plus de 7 secondes à parcourir. Si je prend la
commande dir en VBA, ca prend 0.3 sec pour le meme repertoire. C'est
pratiquement 25x plus rapide.

Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15396911
"Daniel Blais" news:t_Uki.58436$
Bonjour,
je dois parcourir un repertoire a la fois et afficher les noms des
fichiers et sous-repertoire et c'est tres slow à l'occasion. Le serveur
n'est pas très occupé.

voici mon code (asp) (moins le code html) :

set fso = server.createobject("scripting.filesystemobject")
set fold = fso.getfolder(basedir)
for each fold2 in fold.subfolders
fname = fold2.name
%>
<%=fname%>
<%
end if
next
set fold2 = nothing


Par exemple, un repertoire qui contient 700 sous-repertoire (aucun
fichier), ca prend plus de 7 secondes à parcourir. Si je prend la
commande dir en VBA, ca prend 0.3 sec pour le meme repertoire. C'est
pratiquement 25x plus rapide.



Hello,

Ceci est normal. Voici un article qui explique le problème,
benchmark à l'appui:
http://faq.vb.free.fr/index.php?question6

Solution (théorique) : ne pas utiliser fso.

Solution pratique : aucune idée. Ce groupe est dédié à VB6,
et antérieures. Il existe des groupes spécialisés pour le
développement web.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Publicité
Poster une réponse
Anonyme