begin process at 2012 02 11 03:57:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Exécution

 > 

Un peu d'IL


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

Un peu d'IL

mercredi 14 mai 2008 à 16:28:31 | Un peu d'IL

Julien237

Bonjour,
J'insère dynamiquement un morceau d'IL dans un programme C#.
J'ai trouvé l'IL à insérer par mimétisme d'un modèle désassemblé.
Or voilà que dans cet IL je trouve les instructions
stloc.0
ldloc.0

La doc me dit :
stloc : Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 0.
ldloc : Loads the local variable at a specific index onto the evaluation stack.

J'en conclus que je fais un pas en avant, un pas en arrière non ?
Et que supprimer ces deux opérations reviendrait au même et même accélèrerait mon code.

Un gourou de l'IL pourrait-il me le confirmer ?
Merci !


Julien.
jeudi 15 mai 2008 à 08:42:57 | Re : Un peu d'IL

leprov

Réponse acceptée !
pourrais tu poster un extrait un peu plus long (avant et apres) de ce code? Je connais trop peu l'IL pour etre sur de moi, mais à priori je dirais que le but est de créer une copie de la variable à cet instant T. en bref, la valeur est stockée dans la variable en 0, cependant (a confirmer) l'instruction stloc doit "poper" la variable de la pile, alors que ldloc ne vide pas la variable.
Donc, ca permettrait d'avoir dans 0 la copie de cette valeur, soit parce qu'une fonction va utiliser cette variable après, mais qu'entre temps on veut la modifier, soit parce qu'on veut continuer a travailler sur la variable mais qu'ensuite on fera qqch de la valeur actuelle. Bref, je suis pas du tout sur de moi parce que je connais pas assez l'IL, donc prend pas ca pour acquis, mais en tous cas cest l'hypothèse que j'avancerais


jeudi 15 mai 2008 à 09:21:20 | Re : Un peu d'IL

Julien237

Ah oui je ne l'avais pas vu comme ça, c'est en effet tout à fait plausible. Ici je n'utilise la variable qu'une fois et je peux me passer de ces instructions (vérifié), mais si je devais y accéder plusieurs fois je ne pourrais sans doute pas le faire.
En fait je pense que dans mon cas cette "non-optimisation" est restée pour garder une correspondance entre une instruction C# et un set d'instructions IL.

Julien.
mardi 22 juillet 2008 à 11:15:00 | Re : Un peu d'IL

ShareVB

salut,

j'ajouterais juste que le compilateur C# ne fait pas d'optimisation du code. L'optimisation est effectuée par le JIT. Donc effectivement, il peut souvent y avoir du code "en trop"...

ShareVB


Cette discussion est classée dans : local, variable, at, stack, evaluation


Répondre à ce message

Sujets en rapport avec ce message

afficher une variable publique dans un rapport local client (.rdlc) [ par Avantcentre ] Bonjour je viens de commencer sous C#. je voudrais savoir comment on peut afficher une variable publique dans un rapport. en visual foxpro c'était sim Heritage : Empecher le partage d'une variable static [ par vincnet68 ] Bonjour, J'utilise une classe static pour effectuer des Logs dans toute mon application. Je souhaite ajouter une classe dérivée pour faire un deuxiè Variable "indexée" [ par PrinceSilk ] Bonjour, débutant en C#, je cherche à créer un ensemble de variables du même nom appelables via leur index: exemple while (I<5) { Mavariable(I)=... Passer de string a byte sans modiffication du contenu de la variable [ par Mike3633 ] Bonjour, J'ai une variable string qui est variable de 0 à 255 et je voudrai la maitre dans une variable byte de manière a ce quelle soit identique. Intégration des commandes AT dans le C# [ par murphy90 ] Bonjour, J'aimerai développer une application qui consiste à mesurer les paramètres de qualité de service en utilisant les AT commandes ou encore app sauvergarde de variable [ par FaustVII ] je voudrai simplement savoir comment modifier une variable lors de l'execution d'un programme pour qu 'elle garde la meme valeur si je quitte et relan sauvegarde de variable [ par FaustVII ] Faustje cherche a sauvegarder la valeur d' une variable apres l avoir modifier lors de l execution de mon programme est ce que quelqu un pourrai m exp Sauvegarde de multiple variable dans un .INI [ par CracK ] J'aimerai savoir comment sauvegarder plusieurs variables dans un fichier .INI . ( Ecriture/Lecture )Merci , CracK Passage de variable [ par creanova2000 ] Bonjour ,Merci Caps pour l'aideComment je peux passer les valeur de deux variables entre deux windows forms.j'ai un windows form login qui contien les variable [ par kedric ] bonjourd pouver vous m aider a trensferer une variable dune form1 a une form2 pouver vous me donner le code ou un programe qui le fait(avec source svp


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,577 sec (4)

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