Ton code me montre que le chargement de l'image est=20
effectivement tr=E8s rapide (m=EAme chez moi)et que le=20
probl=E8me se situe donc =E0 l' affichage :j'ai rajout=E9 le=20
code suivant( apr=E8s avoir cr=E9=E9 une picture image1 sur une=20
form1) :
n =3D GetTickCount()
Image1.Image =3D DirectCast(bmp, Bitmap)
MsgBox("temps d 'affichage=3D" & Str(GetTickCount() -
n)),
et j'ai retrouv=E9 la gal=E8re : 50 secondes environ pour=20
afficher.
J'ai le moral =E0 moiti=E9 remont=E9 !
le probl=E8me est pr=E9cis=E9, mais il est toujours l=E0 .
Reformulons le :
Combien de temps faut il pour afficher une image(d=E9j=E0=20
charg=E9e)de 60 mo =E0 l =E9cran ?
Il me faut toujours pr=E9s d'une minute en vbnet!
.....apr=E8s nouveau test le myst=E8re s'=E9paissie.
-sous VB6
le code suivant :
Private Sub Command1_Click()
Dim pic As Picture
Dim n As Long
n =3D GetTickCount
Set pic =3D LoadPicture("c:\temp\zd.bmp")
'chargement en m=E9moire
MsgBox GetTickCount - n =20
n =3D GetTickCount
'affichage =E0 l=E9cran
Image1.Picture =3D pic
MsgBox GetTickCount - n
End Sub
Donne :
Temps de chargement-> 22109 (22s)
Temps d'affichage ->610 (0.6s)
Sous VB net le code =E9quivalent(1) donne
Temps de chargement-> 4953 (5s)
Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage r=E9=E9l=20
n '=E9tait pas de 50 s environ sur ma machine et,ce qui est=20
plus inqui=E9tant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci=20
(et merci par avance , de me consacrer encore un peu de=20
temps !)
(1) Private Declare Function GetTickCount=20
Lib "kernel32" () As Integer
Private Sub Command1_Click(ByVal eventSender As=20
System.Object, ByVal eventArgs As System.EventArgs)=20
Handles Command1.Click
=09
=09
Dim pic As System.Drawing.Image
Dim n As Integer
=09
n =3D GetTickCount
pic =3D System.Drawing.Image.FromFile
("c:\temp\zd.bmp")
MsgBox(GetTickCount - n)
n =3D GetTickCount
Image1.Image =3D pic
MsgBox(GetTickCount - n)
=09
End=20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jerome crevecoeur
As-tu essayé le double buffering? Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse: http://www.dotnet-tech.com/tutoriels/double_buffering/
Cordialement
pradon a écrit :
yanick !
merci.
Ton code me montre que le chargement de l'image est effectivement très rapide (même chez moi)et que le problème se situe donc à l' affichage :j'ai rajouté le code suivant( après avoir créé une picture image1 sur une form1) : n = GetTickCount() Image1.Image = DirectCast(bmp, Bitmap) MsgBox("temps d 'affichage=" & Str(GetTickCount() - n)),
et j'ai retrouvé la galère : 50 secondes environ pour afficher.
J'ai le moral à moitié remonté ! le problème est précisé, mais il est toujours là . Reformulons le : Combien de temps faut il pour afficher une image(déjà chargée)de 60 mo à l écran ? Il me faut toujours prés d'une minute en vbnet! .....après nouveau test le mystère s'épaissie. -sous VB6 le code suivant : Private Sub Command1_Click() Dim pic As Picture Dim n As Long n = GetTickCount Set pic = LoadPicture("c:tempzd.bmp") 'chargement en mémoire MsgBox GetTickCount - n n = GetTickCount 'affichage à lécran Image1.Picture = pic MsgBox GetTickCount - n
End Sub
Donne : Temps de chargement-> 22109 (22s) Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne Temps de chargement-> 4953 (5s) Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél n 'était pas de 50 s environ sur ma machine et,ce qui est plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci (et merci par avance , de me consacrer encore un peu de temps !)
(1) Private Declare Function GetTickCount Lib "kernel32" () As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Dim pic As System.Drawing.Image Dim n As Integer
n = GetTickCount pic = System.Drawing.Image.FromFile ("c:tempzd.bmp") MsgBox(GetTickCount - n) n = GetTickCount Image1.Image = pic MsgBox(GetTickCount - n)
End
.
.
As-tu essayé le double buffering?
Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse:
http://www.dotnet-tech.com/tutoriels/double_buffering/
Cordialement
pradon a écrit :
yanick !
merci.
Ton code me montre que le chargement de l'image est
effectivement très rapide (même chez moi)et que le
problème se situe donc à l' affichage :j'ai rajouté le
code suivant( après avoir créé une picture image1 sur une
form1) :
n = GetTickCount()
Image1.Image = DirectCast(bmp, Bitmap)
MsgBox("temps d 'affichage=" & Str(GetTickCount() -
n)),
et j'ai retrouvé la galère : 50 secondes environ pour
afficher.
J'ai le moral à moitié remonté !
le problème est précisé, mais il est toujours là .
Reformulons le :
Combien de temps faut il pour afficher une image(déjà
chargée)de 60 mo à l écran ?
Il me faut toujours prés d'une minute en vbnet!
.....après nouveau test le mystère s'épaissie.
-sous VB6
le code suivant :
Private Sub Command1_Click()
Dim pic As Picture
Dim n As Long
n = GetTickCount
Set pic = LoadPicture("c:tempzd.bmp")
'chargement en mémoire
MsgBox GetTickCount - n
n = GetTickCount
'affichage à lécran
Image1.Picture = pic
MsgBox GetTickCount - n
End Sub
Donne :
Temps de chargement-> 22109 (22s)
Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne
Temps de chargement-> 4953 (5s)
Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél
n 'était pas de 50 s environ sur ma machine et,ce qui est
plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci
(et merci par avance , de me consacrer encore un peu de
temps !)
(1) Private Declare Function GetTickCount
Lib "kernel32" () As Integer
Private Sub Command1_Click(ByVal eventSender As
System.Object, ByVal eventArgs As System.EventArgs)
Handles Command1.Click
Dim pic As System.Drawing.Image
Dim n As Integer
n = GetTickCount
pic = System.Drawing.Image.FromFile
("c:tempzd.bmp")
MsgBox(GetTickCount - n)
n = GetTickCount
Image1.Image = pic
MsgBox(GetTickCount - n)
As-tu essayé le double buffering? Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse: http://www.dotnet-tech.com/tutoriels/double_buffering/
Cordialement
pradon a écrit :
yanick !
merci.
Ton code me montre que le chargement de l'image est effectivement très rapide (même chez moi)et que le problème se situe donc à l' affichage :j'ai rajouté le code suivant( après avoir créé une picture image1 sur une form1) : n = GetTickCount() Image1.Image = DirectCast(bmp, Bitmap) MsgBox("temps d 'affichage=" & Str(GetTickCount() - n)),
et j'ai retrouvé la galère : 50 secondes environ pour afficher.
J'ai le moral à moitié remonté ! le problème est précisé, mais il est toujours là . Reformulons le : Combien de temps faut il pour afficher une image(déjà chargée)de 60 mo à l écran ? Il me faut toujours prés d'une minute en vbnet! .....après nouveau test le mystère s'épaissie. -sous VB6 le code suivant : Private Sub Command1_Click() Dim pic As Picture Dim n As Long n = GetTickCount Set pic = LoadPicture("c:tempzd.bmp") 'chargement en mémoire MsgBox GetTickCount - n n = GetTickCount 'affichage à lécran Image1.Picture = pic MsgBox GetTickCount - n
End Sub
Donne : Temps de chargement-> 22109 (22s) Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne Temps de chargement-> 4953 (5s) Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél n 'était pas de 50 s environ sur ma machine et,ce qui est plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci (et merci par avance , de me consacrer encore un peu de temps !)
(1) Private Declare Function GetTickCount Lib "kernel32" () As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Dim pic As System.Drawing.Image Dim n As Integer
n = GetTickCount pic = System.Drawing.Image.FromFile ("c:tempzd.bmp") MsgBox(GetTickCount - n) n = GetTickCount Image1.Image = pic MsgBox(GetTickCount - n)
End
.
.
Zoury
Salut Pradon! :O)
voici les tests et résultats avec la même image et le même ordi que le test précédent (voir ici pour les "non-initiers" ;O) ) http://groups.google.com/groups?threadm=eZTMF6L%24EHA.3368%40TK2MSFTNGP10.phx.gbl
résultats VB.NET: Temps de chargement : 1880 ms Temps d'affichage : 160 ms
les résultats sont pour le premier test.. les autres sont plus rapides (cache). <zelle>pour avoir une idée plus précise, j'imagine qu'il faudrait redémarrer l'ordi entre chaque test... faire des milliers de test et calculé la moyenne :OD</zelle>
-- Cordialement Yanick MVP pour Visual Basic "pradon" a écrit dans le message de news:1c1301c4fd51$815fe420$ yanick !
merci.
Ton code me montre que le chargement de l'image est effectivement très rapide (même chez moi)et que le problème se situe donc à l' affichage :j'ai rajouté le code suivant( après avoir créé une picture image1 sur une form1) : n = GetTickCount() Image1.Image = DirectCast(bmp, Bitmap) MsgBox("temps d 'affichage=" & Str(GetTickCount() - n)),
et j'ai retrouvé la galère : 50 secondes environ pour afficher.
J'ai le moral à moitié remonté ! le problème est précisé, mais il est toujours là . Reformulons le : Combien de temps faut il pour afficher une image(déjà chargée)de 60 mo à l écran ? Il me faut toujours prés d'une minute en vbnet! .....après nouveau test le mystère s'épaissie. -sous VB6 le code suivant : Private Sub Command1_Click() Dim pic As Picture Dim n As Long n = GetTickCount Set pic = LoadPicture("c:tempzd.bmp") 'chargement en mémoire MsgBox GetTickCount - n n = GetTickCount 'affichage à lécran Image1.Picture = pic MsgBox GetTickCount - n
End Sub
Donne : Temps de chargement-> 22109 (22s) Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne Temps de chargement-> 4953 (5s) Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél n 'était pas de 50 s environ sur ma machine et,ce qui est plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci (et merci par avance , de me consacrer encore un peu de temps !)
(1) Private Declare Function GetTickCount Lib "kernel32" () As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Dim pic As System.Drawing.Image Dim n As Integer
n = GetTickCount pic = System.Drawing.Image.FromFile ("c:tempzd.bmp") MsgBox(GetTickCount - n) n = GetTickCount Image1.Image = pic MsgBox(GetTickCount - n)
End
.
.
Salut Pradon! :O)
voici les tests et résultats avec la même image et le même ordi que le test
précédent (voir ici pour les "non-initiers" ;O) )
http://groups.google.com/groups?threadm=eZTMF6L%24EHA.3368%40TK2MSFTNGP10.phx.gbl
résultats VB.NET:
Temps de chargement : 1880 ms
Temps d'affichage : 160 ms
les résultats sont pour le premier test.. les autres sont plus rapides
(cache).
<zelle>pour avoir une idée plus précise, j'imagine qu'il faudrait redémarrer
l'ordi entre chaque test... faire des milliers de test et calculé la moyenne
:OD</zelle>
--
Cordialement
Yanick
MVP pour Visual Basic
"pradon" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:1c1301c4fd51$815fe420$a301280a@phx.gbl...
yanick !
merci.
Ton code me montre que le chargement de l'image est
effectivement très rapide (même chez moi)et que le
problème se situe donc à l' affichage :j'ai rajouté le
code suivant( après avoir créé une picture image1 sur une
form1) :
n = GetTickCount()
Image1.Image = DirectCast(bmp, Bitmap)
MsgBox("temps d 'affichage=" & Str(GetTickCount() -
n)),
et j'ai retrouvé la galère : 50 secondes environ pour
afficher.
J'ai le moral à moitié remonté !
le problème est précisé, mais il est toujours là .
Reformulons le :
Combien de temps faut il pour afficher une image(déjà
chargée)de 60 mo à l écran ?
Il me faut toujours prés d'une minute en vbnet!
.....après nouveau test le mystère s'épaissie.
-sous VB6
le code suivant :
Private Sub Command1_Click()
Dim pic As Picture
Dim n As Long
n = GetTickCount
Set pic = LoadPicture("c:tempzd.bmp")
'chargement en mémoire
MsgBox GetTickCount - n
n = GetTickCount
'affichage à lécran
Image1.Picture = pic
MsgBox GetTickCount - n
End Sub
Donne :
Temps de chargement-> 22109 (22s)
Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne
Temps de chargement-> 4953 (5s)
Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél
n 'était pas de 50 s environ sur ma machine et,ce qui est
plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci
(et merci par avance , de me consacrer encore un peu de
temps !)
(1) Private Declare Function GetTickCount
Lib "kernel32" () As Integer
Private Sub Command1_Click(ByVal eventSender As
System.Object, ByVal eventArgs As System.EventArgs)
Handles Command1.Click
Dim pic As System.Drawing.Image
Dim n As Integer
n = GetTickCount
pic = System.Drawing.Image.FromFile
("c:tempzd.bmp")
MsgBox(GetTickCount - n)
n = GetTickCount
Image1.Image = pic
MsgBox(GetTickCount - n)
voici les tests et résultats avec la même image et le même ordi que le test précédent (voir ici pour les "non-initiers" ;O) ) http://groups.google.com/groups?threadm=eZTMF6L%24EHA.3368%40TK2MSFTNGP10.phx.gbl
résultats VB.NET: Temps de chargement : 1880 ms Temps d'affichage : 160 ms
les résultats sont pour le premier test.. les autres sont plus rapides (cache). <zelle>pour avoir une idée plus précise, j'imagine qu'il faudrait redémarrer l'ordi entre chaque test... faire des milliers de test et calculé la moyenne :OD</zelle>
-- Cordialement Yanick MVP pour Visual Basic "pradon" a écrit dans le message de news:1c1301c4fd51$815fe420$ yanick !
merci.
Ton code me montre que le chargement de l'image est effectivement très rapide (même chez moi)et que le problème se situe donc à l' affichage :j'ai rajouté le code suivant( après avoir créé une picture image1 sur une form1) : n = GetTickCount() Image1.Image = DirectCast(bmp, Bitmap) MsgBox("temps d 'affichage=" & Str(GetTickCount() - n)),
et j'ai retrouvé la galère : 50 secondes environ pour afficher.
J'ai le moral à moitié remonté ! le problème est précisé, mais il est toujours là . Reformulons le : Combien de temps faut il pour afficher une image(déjà chargée)de 60 mo à l écran ? Il me faut toujours prés d'une minute en vbnet! .....après nouveau test le mystère s'épaissie. -sous VB6 le code suivant : Private Sub Command1_Click() Dim pic As Picture Dim n As Long n = GetTickCount Set pic = LoadPicture("c:tempzd.bmp") 'chargement en mémoire MsgBox GetTickCount - n n = GetTickCount 'affichage à lécran Image1.Picture = pic MsgBox GetTickCount - n
End Sub
Donne : Temps de chargement-> 22109 (22s) Temps d'affichage ->610 (0.6s)
Sous VB net le code équivalent(1) donne Temps de chargement-> 4953 (5s) Temps d'affichage -> 78 (0.076 s)
Ce serait merveilleux si le temps d'affichage réél n 'était pas de 50 s environ sur ma machine et,ce qui est plus inquiétant sur les machines cibles !
Peu tu tester ces lignes sur ta machine ?
Merci (et merci par avance , de me consacrer encore un peu de temps !)
(1) Private Declare Function GetTickCount Lib "kernel32" () As Integer Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Dim pic As System.Drawing.Image Dim n As Integer
n = GetTickCount pic = System.Drawing.Image.FromFile ("c:tempzd.bmp") MsgBox(GetTickCount - n) n = GetTickCount Image1.Image = pic MsgBox(GetTickCount - n)
End
.
.
Zoury
> Imports System.Text.RegularExpressions
et on a évidemment pas besoin de ce namespace. je l'avais ajouté pour faires des tests..
-- Cordialement Yanick MVP pour Visual Basic
> Imports System.Text.RegularExpressions
et on a évidemment pas besoin de ce namespace. je l'avais ajouté pour
faires des tests..
et on a évidemment pas besoin de ce namespace. je l'avais ajouté pour faires des tests..
-- Cordialement Yanick MVP pour Visual Basic
Pradon
merci jerome pour ton conseil ! Mais cela semble bien compliqué, le double buffering, d'autant que le code exemple du site n'est pas compatible avec ma version Visual studio de 2002 !
En fait ,je ne recherche pas la performance ; s'agissant d'une migration depuis VB6 ,j' espérais, à code équivalent au moins des performances similaires .
-----Message d'origine----- As-tu essayé le double buffering? Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse: http://www.dotnet-tech.com/tutoriels/double_buffering/
Cordialement
merci jerome pour ton conseil !
Mais cela semble bien compliqué, le double buffering,
d'autant que le code exemple du site n'est pas compatible
avec ma version Visual studio de 2002 !
En fait ,je ne recherche pas la performance ; s'agissant
d'une migration depuis VB6 ,j' espérais, à code
équivalent au moins des performances similaires .
-----Message d'origine-----
As-tu essayé le double buffering?
Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse:
http://www.dotnet-tech.com/tutoriels/double_buffering/
merci jerome pour ton conseil ! Mais cela semble bien compliqué, le double buffering, d'autant que le code exemple du site n'est pas compatible avec ma version Visual studio de 2002 !
En fait ,je ne recherche pas la performance ; s'agissant d'une migration depuis VB6 ,j' espérais, à code équivalent au moins des performances similaires .
-----Message d'origine----- As-tu essayé le double buffering? Qui permet d'obtenir des performances plus interessantes
voir l'article de Frédéric Melantois à cette adresse: http://www.dotnet-tech.com/tutoriels/double_buffering/