Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale Excel 2007
Indice perf windows ( j'sais pas comment c'est calculé ! ) : 3,8
Bon choix
Pounet95
"Tatanka" a écrit dans le message de news:Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale Excel 2007
Indice perf windows ( j'sais pas comment c'est calculé ! ) : 3,8
Bon choix
Pounet95
"Tatanka" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:ehUAl8BlIHA.1368@TK2MSFTNGP02.phx.gbl...
Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale Excel 2007
Indice perf windows ( j'sais pas comment c'est calculé ! ) : 3,8
Bon choix
Pounet95
"Tatanka" a écrit dans le message de news:Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Et bien, merci à toi aussi.
Patrick le patient a essayé Keith pour n de 10 à 999 999 999
Il en a trouvé 41 et c'est tout bon.
Temps requis : 16h 37m 57s !!!
Et inutile d'essayer pour n de 999 999 999 à 9 999 999 999 ;-)
car il n'y a pas de nombre de Keith à 10 chiffres !
Serge
"Pounet95" a écrit dans le message de news:
%Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale
Excel 2007 Indice perf windows ( j'sais pas comment c'est calculé ! ) :
3,8
Bon choix
Pounet95
"Tatanka" a écrit dans le message de
news:Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Et bien, merci à toi aussi.
Patrick le patient a essayé Keith pour n de 10 à 999 999 999
Il en a trouvé 41 et c'est tout bon.
Temps requis : 16h 37m 57s !!!
Et inutile d'essayer pour n de 999 999 999 à 9 999 999 999 ;-)
car il n'y a pas de nombre de Keith à 10 chiffres !
Serge
"Pounet95" <Pounetchezlui@ounadou> a écrit dans le message de news:
%23jlFEoMlIHA.1208@TK2MSFTNGP05.phx.gbl...
Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale
Excel 2007 Indice perf windows ( j'sais pas comment c'est calculé ! ) :
3,8
Bon choix
Pounet95
"Tatanka" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de
news:ehUAl8BlIHA.1368@TK2MSFTNGP02.phx.gbl...
Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Et bien, merci à toi aussi.
Patrick le patient a essayé Keith pour n de 10 à 999 999 999
Il en a trouvé 41 et c'est tout bon.
Temps requis : 16h 37m 57s !!!
Et inutile d'essayer pour n de 999 999 999 à 9 999 999 999 ;-)
car il n'y a pas de nombre de Keith à 10 chiffres !
Serge
"Pounet95" a écrit dans le message de news:
%Bonjour,
Suis à la traîne, mais j'apporte mapieere à l'édifice.
Keith : 10 s
Fractales : 13 s
Processeur Intel Core Q6600 2048 Mo Vista Edition Familiale
Excel 2007 Indice perf windows ( j'sais pas comment c'est calculé ! ) :
3,8
Bon choix
Pounet95
"Tatanka" a écrit dans le message de
news:Bonsoir, Bonsoir,
Auriez-vous la bonté de faire exécuter mes deux macros
et me retourner le temps requis par vos machines pour les
exécuter en me spécifiant quelques caractéristiques de votre ordi.
C'est que j'aimerais comparer vos résultats avec ceux
obtenus sur un ordi qu'un ami veut me vendre.
http://cjoint.com/?ebtKXK4L4f
http://cjoint.com/?ebtLBv55qQ
Merci
A --
Serge, en quête de vitesse ;-)
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Voici le code que j'ai modifié
'*****************
'### Constantes à adapter ###
Const LIG_MAX As Long = 510
Const COL_MAX As Long = 255
'############################
'__________________
Sub PMO_Cellules_Fractales()
Dim Couleurs%()
Dim i&
Dim j&
Dim k&
Dim t1 As Date
Dim R As Range
t1 = Time
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
Dim myTab(LIG_MAX * COL_MAX)
For i& = 1 To LIG_MAX
For j& = 1 To COL_MAX
k& = k& + 1
myTab(k&) = Abs((i& Imp j&) Or (i& + Not (j&))) Mod 56
index%(i&, j&) = myTab(k&)
Next j&
Next i&
Call algoTri(LBound(myTab), UBound(myTab), myTab)
k& = 0
For i& = 1 To UBound(myTab)
If i& = 1 Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
Else
If myTab(i&) <> myTab(i& - 1) Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
End If
End If
Next i&
Sheets.Add
Call Affichage
For i& = 1 To LIG_MAX
For k& = 1 To UBound(Couleurs)
For j& = 1 To COL_MAX
If index%(i&, j&) = Couleurs(k&) Then
If R Is Nothing Then
Set R = Range(Cells(i&, j&), Cells(i&, j&))
Else
Set R = Application.Union(R, Range(Cells(i&, j&), Cells(i&, j&)))
End If
End If
Next j&
If Not R Is Nothing Then
R.Interior.ColorIndex = Couleurs(k&)
Set R = Nothing
End If
Next k&
Next i&
MsgBox Format(Time - t1, "hh:mm:ss"), vbInformation, " Temps d'exécution"
End Sub
'__________________
Sub Affichage()
Cells.ColumnWidth = 0.33
Cells.RowHeight = 3.33
Application.DisplayFullScreen = True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
End Sub
'__________________
Function algoTri(ByVal limiteinf&, ByVal limitesup&, ByRef tabtri() As
Variant)
Dim i&
Dim j&
Dim element
Dim transit
i& = limiteinf
j& = limitesup
transit = tabtri((limiteinf + limitesup) 2)
Do
Do While tabtri(i&) < transit
i& = i& + 1
Loop
Do While transit < tabtri(j&)
j& = j& - 1
Loop
If i& <= j& Then
element = tabtri(i&)
tabtri(i&) = tabtri(j&)
tabtri(j&) = element
i& = i& + 1
j& = j& - 1
End If
Loop Until i& > j&
If limiteinf < j& Then
Call algoTri(limiteinf, j&, tabtri())
End If
If i& < limitesup Then
Call algoTri(i&, limitesup, tabtri())
End If
End Function
'*****************
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Voici le code que j'ai modifié
'*****************
'### Constantes à adapter ###
Const LIG_MAX As Long = 510
Const COL_MAX As Long = 255
'############################
'__________________
Sub PMO_Cellules_Fractales()
Dim Couleurs%()
Dim i&
Dim j&
Dim k&
Dim t1 As Date
Dim R As Range
t1 = Time
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
Dim myTab(LIG_MAX * COL_MAX)
For i& = 1 To LIG_MAX
For j& = 1 To COL_MAX
k& = k& + 1
myTab(k&) = Abs((i& Imp j&) Or (i& + Not (j&))) Mod 56
index%(i&, j&) = myTab(k&)
Next j&
Next i&
Call algoTri(LBound(myTab), UBound(myTab), myTab)
k& = 0
For i& = 1 To UBound(myTab)
If i& = 1 Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
Else
If myTab(i&) <> myTab(i& - 1) Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
End If
End If
Next i&
Sheets.Add
Call Affichage
For i& = 1 To LIG_MAX
For k& = 1 To UBound(Couleurs)
For j& = 1 To COL_MAX
If index%(i&, j&) = Couleurs(k&) Then
If R Is Nothing Then
Set R = Range(Cells(i&, j&), Cells(i&, j&))
Else
Set R = Application.Union(R, Range(Cells(i&, j&), Cells(i&, j&)))
End If
End If
Next j&
If Not R Is Nothing Then
R.Interior.ColorIndex = Couleurs(k&)
Set R = Nothing
End If
Next k&
Next i&
MsgBox Format(Time - t1, "hh:mm:ss"), vbInformation, " Temps d'exécution"
End Sub
'__________________
Sub Affichage()
Cells.ColumnWidth = 0.33
Cells.RowHeight = 3.33
Application.DisplayFullScreen = True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
End Sub
'__________________
Function algoTri(ByVal limiteinf&, ByVal limitesup&, ByRef tabtri() As
Variant)
Dim i&
Dim j&
Dim element
Dim transit
i& = limiteinf
j& = limitesup
transit = tabtri((limiteinf + limitesup) 2)
Do
Do While tabtri(i&) < transit
i& = i& + 1
Loop
Do While transit < tabtri(j&)
j& = j& - 1
Loop
If i& <= j& Then
element = tabtri(i&)
tabtri(i&) = tabtri(j&)
tabtri(j&) = element
i& = i& + 1
j& = j& - 1
End If
Loop Until i& > j&
If limiteinf < j& Then
Call algoTri(limiteinf, j&, tabtri())
End If
If i& < limitesup Then
Call algoTri(i&, limitesup, tabtri())
End If
End Function
'*****************
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Voici le code que j'ai modifié
'*****************
'### Constantes à adapter ###
Const LIG_MAX As Long = 510
Const COL_MAX As Long = 255
'############################
'__________________
Sub PMO_Cellules_Fractales()
Dim Couleurs%()
Dim i&
Dim j&
Dim k&
Dim t1 As Date
Dim R As Range
t1 = Time
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
Dim myTab(LIG_MAX * COL_MAX)
For i& = 1 To LIG_MAX
For j& = 1 To COL_MAX
k& = k& + 1
myTab(k&) = Abs((i& Imp j&) Or (i& + Not (j&))) Mod 56
index%(i&, j&) = myTab(k&)
Next j&
Next i&
Call algoTri(LBound(myTab), UBound(myTab), myTab)
k& = 0
For i& = 1 To UBound(myTab)
If i& = 1 Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
Else
If myTab(i&) <> myTab(i& - 1) Then
k& = k& + 1
ReDim Preserve Couleurs(1 To k&)
Couleurs(k&) = myTab(i&)
End If
End If
Next i&
Sheets.Add
Call Affichage
For i& = 1 To LIG_MAX
For k& = 1 To UBound(Couleurs)
For j& = 1 To COL_MAX
If index%(i&, j&) = Couleurs(k&) Then
If R Is Nothing Then
Set R = Range(Cells(i&, j&), Cells(i&, j&))
Else
Set R = Application.Union(R, Range(Cells(i&, j&), Cells(i&, j&)))
End If
End If
Next j&
If Not R Is Nothing Then
R.Interior.ColorIndex = Couleurs(k&)
Set R = Nothing
End If
Next k&
Next i&
MsgBox Format(Time - t1, "hh:mm:ss"), vbInformation, " Temps d'exécution"
End Sub
'__________________
Sub Affichage()
Cells.ColumnWidth = 0.33
Cells.RowHeight = 3.33
Application.DisplayFullScreen = True
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
End Sub
'__________________
Function algoTri(ByVal limiteinf&, ByVal limitesup&, ByRef tabtri() As
Variant)
Dim i&
Dim j&
Dim element
Dim transit
i& = limiteinf
j& = limitesup
transit = tabtri((limiteinf + limitesup) 2)
Do
Do While tabtri(i&) < transit
i& = i& + 1
Loop
Do While transit < tabtri(j&)
j& = j& - 1
Loop
If i& <= j& Then
element = tabtri(i&)
tabtri(i&) = tabtri(j&)
tabtri(j&) = element
i& = i& + 1
j& = j& - 1
End If
Loop Until i& > j&
If limiteinf < j& Then
Call algoTri(limiteinf, j&, tabtri())
End If
If i& < limitesup Then
Call algoTri(i&, limitesup, tabtri())
End If
End Function
'*****************
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
Bonjour,
Au sujet des fractales et de votre quête de vitesse
En ayant optimisé votre code, j'obtiens un gain de temps significatif.
Avec ma machine processeur Core 2 Duo 2.33 GHz
j'obtiens 17s/18s avec votre code et 6s/7s avec le code modifié.
Avez-vous le même gain de temps ?
Cordialement.
PMO
Patrick Morange
PS : il faudrait aller un peu plus loin qu'avec les secondes parce
qu'avec des temps courts, 9s, ça va de 8,501 à 9,499 soit 11%, ce qui
est quand même assez important quand on fait des comparaisons.
PS : il faudrait aller un peu plus loin qu'avec les secondes parce
qu'avec des temps courts, 9s, ça va de 8,501 à 9,499 soit 11%, ce qui
est quand même assez important quand on fait des comparaisons.
PS : il faudrait aller un peu plus loin qu'avec les secondes parce
qu'avec des temps courts, 9s, ça va de 8,501 à 9,499 soit 11%, ce qui
est quand même assez important quand on fait des comparaisons.
Bien vu... mais rien compris !!!
Bien vu... mais rien compris !!!
Bien vu... mais rien compris !!!
Bonjour Jac,Bien vu... mais rien compris !!!
Quelques explications :
L'optimisation porte uniquement sur la couleur du fonds des cellules.
L'instruction de Tatanka
Cells(i, j).Interior.ColorIndex = Abs((i Imp j) Or (i + Not (j))) Mod 56
colorie les cellules une par une et c'est cela qui ralentit le code.
La piste est d'inscrire chaque couleur d'un seul coup dans les cellules
concernées.
Il faut donc :
1) récupérer les index de couleur dans un tableau bidimensionné
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
2) connaître le nombre d'index différents. Pour cela on crée un tableau
dimensionné
de 1 à nombre de cellules concernées pour y inscrire chaque index
Dim myTab(LIG_MAX * COL_MAX)
On trie ce tableau au moyen de la fonction algoTri ( 130050 lignes )
On fait une boucle sur ce tableau et chaque fois qu'on rencontre un
index différent on l'affecte dans le tableau Couleurs
3) On inscrit les couleurs des cellules d'un seul coup sauf que je le fais
ligne par ligne. J'ai pris cette option pour avoir un visuel utilisateur
plus joli et
je n'use pas, par conséquent, de ApplicationScreeUpdating = False
A - boucle sur toutes les lignes
B - (y imbriquée) boucle sur toutes les couleurs trouvées
C - (y imbriquée) boucle sur toutes les colonnes
Faire une Union de toutes les cellules de la ligne ayant la même couleur
et appliquer, en une seule fois, la couleur à cette Union.
Si le gain en rapidité est d'un facteur 2à3, le nombre de lignes
du code est multiplié par 5. On améliore d'un côté et on alourdit de l'autre.
Faites votre choix.
Cordialement.
PMO
Patrick Morange
Bonjour Jac,
Bien vu... mais rien compris !!!
Quelques explications :
L'optimisation porte uniquement sur la couleur du fonds des cellules.
L'instruction de Tatanka
Cells(i, j).Interior.ColorIndex = Abs((i Imp j) Or (i + Not (j))) Mod 56
colorie les cellules une par une et c'est cela qui ralentit le code.
La piste est d'inscrire chaque couleur d'un seul coup dans les cellules
concernées.
Il faut donc :
1) récupérer les index de couleur dans un tableau bidimensionné
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
2) connaître le nombre d'index différents. Pour cela on crée un tableau
dimensionné
de 1 à nombre de cellules concernées pour y inscrire chaque index
Dim myTab(LIG_MAX * COL_MAX)
On trie ce tableau au moyen de la fonction algoTri ( 130050 lignes )
On fait une boucle sur ce tableau et chaque fois qu'on rencontre un
index différent on l'affecte dans le tableau Couleurs
3) On inscrit les couleurs des cellules d'un seul coup sauf que je le fais
ligne par ligne. J'ai pris cette option pour avoir un visuel utilisateur
plus joli et
je n'use pas, par conséquent, de ApplicationScreeUpdating = False
A - boucle sur toutes les lignes
B - (y imbriquée) boucle sur toutes les couleurs trouvées
C - (y imbriquée) boucle sur toutes les colonnes
Faire une Union de toutes les cellules de la ligne ayant la même couleur
et appliquer, en une seule fois, la couleur à cette Union.
Si le gain en rapidité est d'un facteur 2à3, le nombre de lignes
du code est multiplié par 5. On améliore d'un côté et on alourdit de l'autre.
Faites votre choix.
Cordialement.
PMO
Patrick Morange
Bonjour Jac,Bien vu... mais rien compris !!!
Quelques explications :
L'optimisation porte uniquement sur la couleur du fonds des cellules.
L'instruction de Tatanka
Cells(i, j).Interior.ColorIndex = Abs((i Imp j) Or (i + Not (j))) Mod 56
colorie les cellules une par une et c'est cela qui ralentit le code.
La piste est d'inscrire chaque couleur d'un seul coup dans les cellules
concernées.
Il faut donc :
1) récupérer les index de couleur dans un tableau bidimensionné
Dim index%(1 To LIG_MAX, 1 To COL_MAX)
2) connaître le nombre d'index différents. Pour cela on crée un tableau
dimensionné
de 1 à nombre de cellules concernées pour y inscrire chaque index
Dim myTab(LIG_MAX * COL_MAX)
On trie ce tableau au moyen de la fonction algoTri ( 130050 lignes )
On fait une boucle sur ce tableau et chaque fois qu'on rencontre un
index différent on l'affecte dans le tableau Couleurs
3) On inscrit les couleurs des cellules d'un seul coup sauf que je le fais
ligne par ligne. J'ai pris cette option pour avoir un visuel utilisateur
plus joli et
je n'use pas, par conséquent, de ApplicationScreeUpdating = False
A - boucle sur toutes les lignes
B - (y imbriquée) boucle sur toutes les couleurs trouvées
C - (y imbriquée) boucle sur toutes les colonnes
Faire une Union de toutes les cellules de la ligne ayant la même couleur
et appliquer, en une seule fois, la couleur à cette Union.
Si le gain en rapidité est d'un facteur 2à3, le nombre de lignes
du code est multiplié par 5. On améliore d'un côté et on alourdit de l'autre.
Faites votre choix.
Cordialement.
PMO
Patrick Morange