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
Patrice
Plus rapide certes mais les résultats obtenus sont ? Et la durée totale est ? Ne pas oublier que même si c'est 100 fois plus rapide mais que l'on passe de 0,01 à 0,0001 s, cela veut dire que l'on ne verra de toute façon rien...
Personnellement je préfère option strict on et convertir explicitement pour favoriser la maintenance et la clarté plutôt que la rapidité (sans doute illusoire sauf conversions intensives).
Ce cas semble également un peu académique car en situation réelle on éviterait sans doute de toute façon la conversion...
<Stéphane> a écrit dans le message de groupe de discussion :
Bonjour,
Je me posais la question : est-il préférable de convertir implicitement ou explicitement ?
Pour répondre à la question de la durée d'exécution, j'ai fait 1 test ainsi (VB .Net 2008 Express) :
Public Class Form_Tests_conversions_implicites_ou_explicites
Private Sub Button_Conversion_implicite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Conversion_implicite.Click
Dim début As Date = Now Dim b As Byte Dim s As Short Dim fin As Date
Me.TextBox_Durée_conversion_implicite.Text = ""
For j As Integer = 1 To Me.TextBox_Nombre_itérations.Text
For l As Long = Byte.MinValue To Byte.MaxValue
b = l
Next
For l As Long = Int16.MinValue To Int16.MaxValue
s = l
Next
Next
fin = Now Me.TextBox_Durée_conversion_implicite.Text = fin.Subtract(début).TotalMilliseconds
End Sub
Private Sub Button_Conversion_explicite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Conversion_explicite.Click
Dim début As Date = Now Dim b As Byte Dim s As Short Dim fin As Date
Me.TextBox_Durée_conversion_explicite.Text = ""
For j As Integer = 1 To CInt(Me.TextBox_Nombre_itérations.Text)
For l As Long = Byte.MinValue To Byte.MaxValue
b = CByte(l)
Next
For l As Long = Short.MinValue To Short.MaxValue
s = CShort(l)
Next
Next
fin = Now Me.TextBox_Durée_conversion_explicite.Text = fin.Subtract(début).TotalMilliseconds.ToString
End Sub
End Class
La conversion la plus rapide est celle implicite.
Mais est-il préférable de convertir implicitement ? ou explicitement ?
Merci d'avance pour vos avis, Stéphane
Plus rapide certes mais les résultats obtenus sont ? Et la durée totale est
? Ne pas oublier que même si c'est 100 fois plus rapide mais que l'on passe
de 0,01 à 0,0001 s, cela veut dire que l'on ne verra de toute façon rien...
Personnellement je préfère option strict on et convertir explicitement pour
favoriser la maintenance et la clarté plutôt que la rapidité (sans doute
illusoire sauf conversions intensives).
Ce cas semble également un peu académique car en situation réelle on
éviterait sans doute de toute façon la conversion...
<Stéphane> a écrit dans le message de groupe de discussion :
uTF3msYTKHA.1232@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je me posais la question : est-il préférable de convertir implicitement ou
explicitement ?
Pour répondre à la question de la durée d'exécution, j'ai fait 1 test
ainsi (VB .Net 2008 Express) :
Public Class Form_Tests_conversions_implicites_ou_explicites
Private Sub Button_Conversion_implicite_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button_Conversion_implicite.Click
Dim début As Date = Now
Dim b As Byte
Dim s As Short
Dim fin As Date
Me.TextBox_Durée_conversion_implicite.Text = ""
For j As Integer = 1 To Me.TextBox_Nombre_itérations.Text
For l As Long = Byte.MinValue To Byte.MaxValue
b = l
Next
For l As Long = Int16.MinValue To Int16.MaxValue
s = l
Next
Next
fin = Now
Me.TextBox_Durée_conversion_implicite.Text =
fin.Subtract(début).TotalMilliseconds
End Sub
Private Sub Button_Conversion_explicite_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
Button_Conversion_explicite.Click
Dim début As Date = Now
Dim b As Byte
Dim s As Short
Dim fin As Date
Me.TextBox_Durée_conversion_explicite.Text = ""
For j As Integer = 1 To CInt(Me.TextBox_Nombre_itérations.Text)
For l As Long = Byte.MinValue To Byte.MaxValue
b = CByte(l)
Next
For l As Long = Short.MinValue To Short.MaxValue
s = CShort(l)
Next
Next
fin = Now
Me.TextBox_Durée_conversion_explicite.Text =
fin.Subtract(début).TotalMilliseconds.ToString
End Sub
End Class
La conversion la plus rapide est celle implicite.
Mais est-il préférable de convertir implicitement ? ou explicitement ?
Plus rapide certes mais les résultats obtenus sont ? Et la durée totale est ? Ne pas oublier que même si c'est 100 fois plus rapide mais que l'on passe de 0,01 à 0,0001 s, cela veut dire que l'on ne verra de toute façon rien...
Personnellement je préfère option strict on et convertir explicitement pour favoriser la maintenance et la clarté plutôt que la rapidité (sans doute illusoire sauf conversions intensives).
Ce cas semble également un peu académique car en situation réelle on éviterait sans doute de toute façon la conversion...
<Stéphane> a écrit dans le message de groupe de discussion :
Bonjour,
Je me posais la question : est-il préférable de convertir implicitement ou explicitement ?
Pour répondre à la question de la durée d'exécution, j'ai fait 1 test ainsi (VB .Net 2008 Express) :
Public Class Form_Tests_conversions_implicites_ou_explicites
Private Sub Button_Conversion_implicite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Conversion_implicite.Click
Dim début As Date = Now Dim b As Byte Dim s As Short Dim fin As Date
Me.TextBox_Durée_conversion_implicite.Text = ""
For j As Integer = 1 To Me.TextBox_Nombre_itérations.Text
For l As Long = Byte.MinValue To Byte.MaxValue
b = l
Next
For l As Long = Int16.MinValue To Int16.MaxValue
s = l
Next
Next
fin = Now Me.TextBox_Durée_conversion_implicite.Text = fin.Subtract(début).TotalMilliseconds
End Sub
Private Sub Button_Conversion_explicite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Conversion_explicite.Click
Dim début As Date = Now Dim b As Byte Dim s As Short Dim fin As Date
Me.TextBox_Durée_conversion_explicite.Text = ""
For j As Integer = 1 To CInt(Me.TextBox_Nombre_itérations.Text)
For l As Long = Byte.MinValue To Byte.MaxValue
b = CByte(l)
Next
For l As Long = Short.MinValue To Short.MaxValue
s = CShort(l)
Next
Next
fin = Now Me.TextBox_Durée_conversion_explicite.Text = fin.Subtract(début).TotalMilliseconds.ToString
End Sub
End Class
La conversion la plus rapide est celle implicite.
Mais est-il préférable de convertir implicitement ? ou explicitement ?
Merci d'avance pour vos avis, Stéphane
Patrice
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur 20 000 conversions donc même si c'est techiquement plus rapide, la aussi l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle : - utiliser tout simplement Option Strict On ce qui permet de ne convertir explicitement que lorsque c'est nécessaire et ce qui donne à la fois un bénéfice en performance pure (à mon avis très mineur) et surtout en maintenance (à mon avis bien plus significatif).
-- Patrice
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire
rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur
20 000 conversions donc même si c'est techiquement plus rapide, la aussi
l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle :
- utiliser tout simplement Option Strict On ce qui permet de ne convertir
explicitement que lorsque c'est nécessaire et ce qui donne à la fois un
bénéfice en performance pure (à mon avis très mineur) et surtout en
maintenance (à mon avis bien plus significatif).
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur 20 000 conversions donc même si c'est techiquement plus rapide, la aussi l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle : - utiliser tout simplement Option Strict On ce qui permet de ne convertir explicitement que lorsque c'est nécessaire et ce qui donne à la fois un bénéfice en performance pure (à mon avis très mineur) et surtout en maintenance (à mon avis bien plus significatif).
-- Patrice
Bonjour et merci Patrice,
Option Strict On, direct, pour Conversion implicite, ca fait Erreur au lieu de Avertissement sachant que par défaut, c'est Aucun. Ceci dit, ca ne change pas grand chose, je n'aime pas laisser d'avertissement, même si ca a l'utilité de pouvoir tester en mode débug.
Concernant la vitesse, je suis tout à fait d'accord, même s'il y a 1 gain de vitesse en conversion implicite, ce n'est que de la poudre aux yeux.
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur 20 000 conversions donc même si c'est techiquement plus rapide, la aussi l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle : - utiliser tout simplement Option Strict On ce qui permet de ne convertir explicitement que lorsque c'est nécessaire et ce qui donne à la fois un bénéfice en performance pure (à mon avis très mineur) et surtout en maintenance (à mon avis bien plus significatif).
-- Patrice
Bonjour et merci Patrice,
Option Strict On, direct, pour Conversion implicite, ca fait Erreur au lieu
de Avertissement sachant que par défaut, c'est Aucun.
Ceci dit, ca ne change pas grand chose, je n'aime pas laisser
d'avertissement, même si ca a l'utilité de pouvoir tester en mode débug.
Concernant la vitesse, je suis tout à fait d'accord, même s'il y a 1 gain de
vitesse en conversion implicite, ce n'est que de la poudre aux yeux.
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les
propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
Ort7w5bTKHA.1280@TK2MSFTNGP04.phx.gbl...
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire
rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur
20 000 conversions donc même si c'est techiquement plus rapide, la aussi
l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle :
- utiliser tout simplement Option Strict On ce qui permet de ne convertir
explicitement que lorsque c'est nécessaire et ce qui donne à la fois un
bénéfice en performance pure (à mon avis très mineur) et surtout en
maintenance (à mon avis bien plus significatif).
Option Strict On, direct, pour Conversion implicite, ca fait Erreur au lieu de Avertissement sachant que par défaut, c'est Aucun. Ceci dit, ca ne change pas grand chose, je n'aime pas laisser d'avertissement, même si ca a l'utilité de pouvoir tester en mode débug.
Concernant la vitesse, je suis tout à fait d'accord, même s'il y a 1 gain de vitesse en conversion implicite, ce n'est que de la poudre aux yeux.
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
Je confirme sur 10 000 itérations j'ai 30 ms de différence autant dire rien...
Avec option strict on et en évitant les conversions je gagne 1 000 ms (sur 20 000 conversions donc même si c'est techiquement plus rapide, la aussi l'impact dans des conditions réelles est insignifiant).
Donc je confirme la bonne pratique habituelle : - utiliser tout simplement Option Strict On ce qui permet de ne convertir explicitement que lorsque c'est nécessaire et ce qui donne à la fois un bénéfice en performance pure (à mon avis très mineur) et surtout en maintenance (à mon avis bien plus significatif).
-- Patrice
Patrice
> Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
> Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les
propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de
mettre le project en Option Strict On.
Cela permet :
- d'utiliser Option Strict On pour les nouveaux fichiers
- de pouvoir corriger le code existant à ton rythme fichier par fichier en
supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option
strict off (par exemple pour du "late binding") si nécessaire...
> Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
Richard Clark
Patrice a écrit :
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
J'irai même un peu plus loin : Option Strict sur On Option Infer sur Off
Soit exactement le contraire des options par défaut de MS :P
-- Richard Clark http://www.c2i.fr Le 1er site .NET
Patrice a écrit :
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les
propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de
mettre le project en Option Strict On.
Cela permet :
- d'utiliser Option Strict On pour les nouveaux fichiers
- de pouvoir corriger le code existant à ton rythme fichier par fichier en
supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option
strict off (par exemple pour du "late binding") si nécessaire...
--
Patrice
J'irai même un peu plus loin :
Option Strict sur On
Option Infer sur Off
Soit exactement le contraire des options par défaut de MS :P
--
Richard Clark
http://www.c2i.fr
Le 1er site .NET
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
J'irai même un peu plus loin : Option Strict sur On Option Infer sur Off
Soit exactement le contraire des options par défaut de MS :P
-- Richard Clark http://www.c2i.fr Le 1er site .NET
Pas de soucis, c'est déjà tout débuggué :) (je préfère ne pas remettre au lendemain si je peux faire le jour même) Bon, faut dire que l'option de correction d'erreur aide bien, même pas besoin de réfléchir ! Cbyte, ok, vas-y, Clng, ok, vas-y ! Ctype, parfait !
++ Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
Pas de soucis, c'est déjà tout débuggué :) (je préfère ne pas remettre au
lendemain si je peux faire le jour même)
Bon, faut dire que l'option de correction d'erreur aide bien, même pas
besoin de réfléchir !
Cbyte, ok, vas-y, Clng, ok, vas-y ! Ctype, parfait !
++
Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
OTPAmJkTKHA.2836@TK2MSFTNGP04.phx.gbl...
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les
propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de
mettre le project en Option Strict On.
Cela permet :
- d'utiliser Option Strict On pour les nouveaux fichiers
- de pouvoir corriger le code existant à ton rythme fichier par fichier en
supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en
option strict off (par exemple pour du "late binding") si nécessaire...
Pas de soucis, c'est déjà tout débuggué :) (je préfère ne pas remettre au lendemain si je peux faire le jour même) Bon, faut dire que l'option de correction d'erreur aide bien, même pas besoin de réfléchir ! Cbyte, ok, vas-y, Clng, ok, vas-y ! Ctype, parfait !
++ Stéphane
"Patrice" <http://scribe-fr.blogspot.com/> a écrit dans le message de news:
Bon, je vais donc suivre ton conseil, et mettre Option Strict On dans les propriétés du projet.
Merci encore et bonne journée, j'ai du débug à faire ! lol
Il est possible de mettre Option Strict Off dans les fichiers, puis de mettre le project en Option Strict On.
Cela permet : - d'utiliser Option Strict On pour les nouveaux fichiers - de pouvoir corriger le code existant à ton rythme fichier par fichier en supprimant progressivement les options strict off
Dans de rares cas, cela permet aussi de garder une partie de code en option strict off (par exemple pour du "late binding") si nécessaire...
-- Patrice
Patrice
Ok, cela dépend effectivement de la taille du code déjà existant ;-)
Ok, cela dépend effectivement de la taille du code déjà existant ;-)
J'ai fais une formation il y a pas longtemps pour des débutants en VB .NET. Après leur avoir expliquer que tout est typé, que les variables représentent un objet, etc. c'est difficile de leur dire que le code suivant est cool :
Dim i = "4"
Ca me rappele une discussion récente sur l'équivalent en C# avec var. var en C# est utilisé à tirlarigo actuellement sur les exemples du web et c'est, à mon avis, une grosse erreur. On pense savoir ce que l'on manipule sans en être sur en réalité.
De manière générale, tout ce qui n'est pas explicite, j'aime pas ;-) -- Richard Clark http://www.c2i.fr Le 1er site .NET
Patrice a écrit :
Option Infer sur Off
Salut Richard, tu n'aimes pas Infer ?
--
Patrice
J'ai fais une formation il y a pas longtemps pour des débutants en VB
.NET. Après leur avoir expliquer que tout est typé, que les variables
représentent un objet, etc. c'est difficile de leur dire que le code
suivant est cool :
Dim i = "4"
Ca me rappele une discussion récente sur l'équivalent en C# avec var.
var en C# est utilisé à tirlarigo actuellement sur les exemples du web
et c'est, à mon avis, une grosse erreur. On pense savoir ce que l'on
manipule sans en être sur en réalité.
De manière générale, tout ce qui n'est pas explicite, j'aime pas ;-)
--
Richard Clark
http://www.c2i.fr
Le 1er site .NET
J'ai fais une formation il y a pas longtemps pour des débutants en VB .NET. Après leur avoir expliquer que tout est typé, que les variables représentent un objet, etc. c'est difficile de leur dire que le code suivant est cool :
Dim i = "4"
Ca me rappele une discussion récente sur l'équivalent en C# avec var. var en C# est utilisé à tirlarigo actuellement sur les exemples du web et c'est, à mon avis, une grosse erreur. On pense savoir ce que l'on manipule sans en être sur en réalité.
De manière générale, tout ce qui n'est pas explicite, j'aime pas ;-) -- Richard Clark http://www.c2i.fr Le 1er site .NET
Patrice
> J'ai fais une formation il y a pas longtemps pour des débutants en VB .NET. Après leur avoir expliquer que tout est typé, que les variables représentent un objet, etc. c'est difficile de leur dire que le code suivant est cool :
Je l'utilise car c'est bien pratique avec LINQ. Ceci dit c'est vrai que je m'aperçois que j'utilise l'inférence de type que pour les types anonymes et je continue à typer explicitement le reste (de toute façon même si je ne voulais pas, cela serait sans doute une habitude difficile à perdre alors que je suis devenu incapable de taper "objet" en français sans mettre un c et adresse sans me demander si il ne faudrait pas deux d).
-- Patrice
> J'ai fais une formation il y a pas longtemps pour des débutants en VB
.NET. Après leur avoir expliquer que tout est typé, que les variables
représentent un objet, etc. c'est difficile de leur dire que le code
suivant est cool :
Je l'utilise car c'est bien pratique avec LINQ. Ceci dit c'est vrai que je
m'aperçois que j'utilise l'inférence de type que pour les types anonymes et
je continue à typer explicitement le reste (de toute façon même si je ne
voulais pas, cela serait sans doute une habitude difficile à perdre alors
que je suis devenu incapable de taper "objet" en français sans mettre un c
et adresse sans me demander si il ne faudrait pas deux d).
> J'ai fais une formation il y a pas longtemps pour des débutants en VB .NET. Après leur avoir expliquer que tout est typé, que les variables représentent un objet, etc. c'est difficile de leur dire que le code suivant est cool :
Je l'utilise car c'est bien pratique avec LINQ. Ceci dit c'est vrai que je m'aperçois que j'utilise l'inférence de type que pour les types anonymes et je continue à typer explicitement le reste (de toute façon même si je ne voulais pas, cela serait sans doute une habitude difficile à perdre alors que je suis devenu incapable de taper "objet" en français sans mettre un c et adresse sans me demander si il ne faudrait pas deux d).