- Visual Basic / VB.NET : Conseil d'optimisation et de lecture de code - CodeS SourceS
- PHP : Class de tag id3v1 pour mp3 (lecture/écriture) - CodeS SourceS
- Visual Basic / VB.NET : Optimisation windows xp par vbscript - CodeS SourceS
- Delphi / Pascal : Tdatamodule pour optimiser l'espace mémoire occupée... - CodeS Sourc
- Delphi / Pascal : Optimisation ressources hospitalières (partie client) - CodeS SourceS
26 juin 2004 à 20:25
@+
Celiphane
26 juin 2004 à 17:10
Que dire de mieux. Effectivement, à chaque fois que l'on change la méthode d'optimisation (P-Code, Natif sans optimisation, Optimisation de la rapidité, on coche ou non les croix...). Les résultats n'arrêtent pas de changer et le classement aussi.
Et quelle lenteur dans l'IDE ??? Si quelqu'un sait pourquoi ! Je ne pense pas que cela viennent de la simple utilisation des ressources système j'ai largement assez de ressources (Athlon Barthon 2600 + 512 Mo DDR 400 Mhz).
++
26 juin 2004 à 13:27
Après les quelques révélations dans les messages précédents, j'ai cette fois tester ce code (une Form nommée Form1 et un bouton nommé Command1) :
Private Declare Function GetTickCount Lib "kernel32.dll" () As Long
Private Sub Command1_Click()
Dim d As Long
Dim i As Long
Dim type_byte As Byte
Dim type_int As Integer
Dim type_lng As Long
d = GetTickCount
For i = 1 To 100000000
type_byte = 1
Next i
MsgBox "Temps en ms avec byte : " & CStr(GetTickCount - d)
d = GetTickCount
For i = 1 To 100000000
type_int = 1
Next i
MsgBox "Temps en ms avec integer : " & CStr(GetTickCount - d)
d = GetTickCount
For i = 1 To 100000000
type_lng = 1
Next i
MsgBox "Temps en ms avec long : " & CStr(GetTickCount - d)
End Sub
Et là les résultats RENVERSENT mes appuis :
- testez avec F5 depuis l'ide, et relevez les valeurs de chacuns
- maintenant compiler en sélectionnant "optimiser la rapidité du code" et dans "options avancées" cochez TOUT, tester et hallucinez : le classement change du tout au tout !!! Même MSDN se plante sur ce classement !
Décidément, VB regorge des surprises même pour les plus aguerris !
@+
Celiphane
25 juin 2004 à 22:36
ou bien désactiver dans les options "Compilation en arriere plan" et "compilation sur demande"
ca permettra que VB recherche toutes les erreurs tout de suite (nom des variables, declarations........ sans attendre d'arriver dans certaines boucles dans lequelq vos tests ne vous meneront pas forcement (ou pas tout de suite))
pour :
Private Sub Couleur(Index As Integer)
Dim Var As Byte
For Var=0 To Couleur.Count-1
If Var=Index Then Couleur(Var).Checked=1 Else Couleur(Var).Checked=0
Next
End Sub
Si checked vaut 0 ou 1 (comme dans l'exemple proposé) :
Private Sub Couleur(Index As Integer)
Dim Var As Integer
For Var=0 To Couleur.Count-1
Couleur(Var).Checked iif( Var Index, 1 , 0 )
Next
End Sub
ou si Checked est un boolean
Private Sub Couleur(Index As Integer)
Dim Var As Integer
For Var=0 To Couleur.Count-1
Couleur(Var).Checked (Var Index)
Next
End Sub
25 juin 2004 à 17:49
Si l'on veut continuer à programmer en VB, on sera bientôt quasi obligé de passer par le Net. Alors prenons tout de suite les bons reflexes et utilisons le type Long :)
@+ et bon prog!