Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Un peu d'IL [ Système / Exécution ] (Julien237)

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é dans : local, variable, at, stack, evaluation


Répondre à ce message

Sujets en rapport avec ce message

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 System.UnauthorizedAccessException [ par KaiHo ] Je travaille avec #develop et j'ai voulu déplacé manuellement (avec l'explorateur Windows) un fichier.Depuis, il est totalement inaccessible, au point c# :comment utiliser dans un form une requête avec clause Where en variable ? [ par Michel0911 ] Bonjour,J'essaye d'afficher dans un form Détail 1 enregistrement à partir d'un form de selection utilisant un datagrid. Je ne sais pas comment indique recuper une variable [ par shinevilkyo ] lu all,j aurais aime comment recuperer l element 1 et le dernier element de ma listview sachant que ma listview est cree ds un autre fichier merci de [C#]Afficher contenu d'une variable dans une méthode static [ par jacma ] BonjourJe déclare une variable "private string strConn" au niveau de la classe 'j'ai aussi esayé public ou même rien), mais je ne peux pas en récupére Accès disque local et pas serveur .. [ par maevacmoi ] Hello !J'ai un petit problème. J'ai la fonction ci-dessous qui ouvre un fichier sur dique, et affiche son contenu dans une text box (depuis un site we


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.