Rapidité au lancement

pedefe Messages postés 2 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 31 mars 2008 - 15 févr. 2008 à 23:03
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 26 févr. 2008 à 18:59
Bonjour à Tous,

Comment pré-charger les modules (system, net, etc) en mémoire au préalable pour avoir une efficacité maximum dés le lancement de l'application.
J'ai eu l'information il y a très longtemps lors d'un cours, mais comme je ne me sers du C# qu'aujourd'hui, je n'arrive pas à retrouver l'astuce. Il s'agissait d'une commande en ligne qui permettait de lister les module du framework en mémoire ou d'en charger au préalable.

Merci

pedefe

24 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 févr. 2008 à 00:40
Effectivement aucun rapport avec "natif" et "native".
Faut bien avouer qu'il y a de sérieux détournements de sens des mots par amalgame (idem avec C++ CLI qui n'a plus de C++ que le nom). Quand on se rappelle que Lindows a du changer de nom (ce que je trouve normal), je me dis que ce genre de préalable devrait s'applique partout.

ciao...
BruNews, MVP VC++
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 févr. 2008 à 10:11
J'ai été clair qlqs posts plus haut qd même :

-Bien sûr ça restera une application managée qui tourne sous l'exécution du CLR, dans ce sens là c'est pas l'équivalent d'un exécutable C/C++.

-n'espère pas l'exécuter tel quel, il faudrait générer et installer le ficher sur ta machine pour ça.

Voilà ce que dit la MSDN.

-Ngen.exe creates native images, which are files containing compiled processor-specific machine code, and installs them into the native image cache on the local computer. The runtime can use native images from the cache instead using the just-in-time (JIT) compiler to compile the original assembly.

Comment ça marche :

Déja on ne double clique pas sur l'image native, elle est censée être cachée dans le dossier Assembly, au démarrage de l'application le runtime .NET prend le contrôle et au lieu d'interprété le code de manière habituelle avec le compilateur JIT, il se branche sur le code natif contenu dans le dossier Assembly. Voilà pourquoi BN tu ne trouves pas de point d'entrée dans le fichier compilé avec NGEN mais qu'il y a qd même des retours de fonctions valides.

Bouilie de code ou pas, je m'en fou un peu, je ne bosse pas chez Microsoft, je sais juste que c'est plus rapide au démarrage et ça répond à la question de ce sujet.

Si vous voulez coder en natif, faites du "D" !
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 févr. 2008 à 22:27
Le D c'est du Delphi (Héritage unique, on ne manipule que des références sur les objets, interfaces, tableaux dynamiques et string intégrés, asm inline), moins le elphi, et plus un ramasse miette.

De toute façon, tant que M$ ou le GNU se penchera pas sérieusment dessus, ça restera dans les cartons de Digital Mars...
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
26 févr. 2008 à 18:59
L'héritage unique de classe mais pas d'interface, c'est pas bien génant, pas de type string integré juste un tableau de char, qui connait sa taille et les pointeurs sont disponibles.

C'est vrai qu'il a du mal à sortir des cartons mais ça commence doucement depuis la version 1.0, notamment avec un livre disponible chez APress.
0
Rejoignez-nous