begin process at 2010 02 10 12:30:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Systeme

 > 

Vitesse d'execution


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vitesse d'execution

lundi 8 mars 2004 à 11:39:11 | Vitesse d'execution

redpooka

Imaginons que j'ai deux fonctions qui retourne un booleen
FctRapide() et FctLente()
FctRapide() est une fonction très rapide
FctLente() est une focntion qui met beaucoup de temps

Je voulais savoir si le temps d'excécution de ce code est plus rapide si FctRapide renvoie false


if(FctRapide())
if (FctLente())
//Action


Que

if(FctRapide() && FctLente())
//Action




if(FctLente() && FctRapide())
//Action


Est-ce lorsqu'on a les deux fonctions dans la condition, si la 1er fausse va-t-il quand même évaluer la seconde ?
Je pense, mais je demande confirmation. Donc le 1er code est plus rapide.
lundi 8 mars 2004 à 14:33:53 | Re : Vitesse d'execution

coq

Administrateur CodeS-SourceS
avec &&, si la premiere condition est fausse alors il s'arrete là et n'evalue pas la seconde, comme au final le resultat sera faux

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfandandoperator.asp



Cocoricoooooooo !!!!
mercredi 5 mai 2004 à 23:57:58 | Re : Vitesse d'execution

jije

Si on prend le code suivant:

private void btnTest_Click(object sender, System.EventArgs e)
{
// Solution 1
if (FctRapide())
if (FctLente())
MessageBox.Show("Solution 1 vrai");
else
MessageBox.Show("Solution 1 faux");
else
MessageBox.Show("Solution 1 faux");

// Solution 2
if (FctRapide() && FctLente())
MessageBox.Show("Solution 2 vrai");
else
MessageBox.Show("Solution 2 faux");

// Solution 3
if (FctLente() && FctRapide())
MessageBox.Show("Solution 3 vrai");
else
MessageBox.Show("Solution 3 faux");
}

On obient le code MSIL suivant:
IL_0000:ldarg.0
IL_0001:call instance bool TestETLogique.Form1::FctRapide()
IL_0006:brfalse.s IL_0020
IL_0008:ldarg.0
IL_0009:call instance bool TestETLogique.Form1::FctLente()
IL_000e:brfalse.s IL_0018
IL_0010:ldarg.0
IL_0011:call instance void TestETLogique.Form1::Solution1Vrai()
IL_0016:br.s IL_001e
IL_0018:ldarg.0
IL_0019:call instance void TestETLogique.Form1::Solution1Faux()
IL_001e:br.s IL_0026
IL_0020:ldarg.0
IL_0021:call instance void TestETLogique.Form1::Solution1Faux()
IL_0026:ldarg.0
IL_0027:call instance bool TestETLogique.Form1::FctRapide()
IL_002c:brfalse.s IL_003e
IL_002e:ldarg.0
IL_002f:call instance bool TestETLogique.Form1::FctLente()
IL_0034:brfalse.s IL_003e
IL_0036:ldarg.0
IL_0037:call instance void TestETLogique.Form1::Solution2Vrai()
IL_003c:br.s IL_0044
IL_003e:ldarg.0
IL_003f:call instance void TestETLogique.Form1::Solution2Faux()
IL_0044:ldarg.0
IL_0045:call instance bool TestETLogique.Form1::FctLente()
IL_004a:brfalse.s IL_005c
IL_004c:ldarg.0
IL_004d:call instance bool TestETLogique.Form1::FctRapide()
IL_0052:brfalse.s IL_005c
IL_0054:ldarg.0
IL_0055:call instance void TestETLogique.Form1::Solution3Vrai()
IL_005a:br.s IL_0062
IL_005c:ldarg.0
IL_005d:call instance void TestETLogique.Form1::Solution3Faux()
IL_0062:ret

On en déduit que les solutions 1 et 2 seront exécutées avec la même vitesse. Mais la solution 2 nécessite moins de code pour la clause else.

Jije
C'est bien moi là-bas, dans le noir


Cette discussion est classée dans : code, action, rapide, fctrapide, fctlente


Répondre à ce message

Sujets en rapport avec ce message

Executer du code C# [ par Skyride ] Bonjour à tousJ'espère que vous pourrez me renseigner...Je m'initie depuis quelques temps à l'environnement .NET et je commence un petit peu à m'inter Les textures [ par NICKO02 ] Pour ceux qui ont le SDK de DX9, je prend le tutorial 5.Voila j'essaies de creer une texture : Dans le fichier D3dtriangle.cs;Dans la classe GraphicsC listage le plus rapide [ par colargol ] salut,Je developpe en C/UNIX.J'enregistre un a un une chaine avec une cle.Lorsque je demande la cle d'une chaine, le programme doit me la retourner le Quel est le meilleur moyen de gerer un buffer ... [ par Hawkmoon ] Bon voila mon probleme : je connecte une socket sur un server irc mais avec le code suivant j'arrive pas a gerer les reponses du server dans un buffer Probleme DropDownList [ par jdaviaud ] J'ai un petit pb avec un dropdownlist.Quand je veux en récupérer la valeur de la ligne sélectionnée, j'utilise le code suivant :string famille = DropD array et CSharp [ par matgai ] Bonjour,Je débute en C# et je vois déjà les limites du tout-objet par rapport à C++. Voici en particulier où je bute :je veux écrire l'équivalent C++ problème de serialisation avec NetworkStream [ par Oberon ] J'aurais voulu sérialisé un objet en passant par un networkStream mais je bute sur un problème de casting...Coté serveur:BinaryFormatter formatter = n Datagrid : faire une colonne spéciale par le code behind [ par Felixlechat ] Bonjour, je sais comment ajouter une BoundColumn dans le code, et comment ajouter un ItemColumn dans la page (dans une datagrid), mais en revanche le Création d'un tableau dynamique HTML par le code... [ par pchanet ] Bonjour à tous,Je suis en train de développer la gestion d'une table HTML (type ...) en dynamique à partir de la page de code et je n'arrive pas à sav code ascii [ par alcamatt ] comment peut on reccupérer le code ascii d'un caractere avec csharp ?En visual basic, je crois me rappeler qu'il fallait utiliser la fonction Asc()mer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales