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
16 févr. 2008 à 10:12
Sérieusement, faire un truc en .net ou tout autre interprété et attendre une "efficacité maximum", c'est une illusion qu'il convient d'évacuer. Il n'y en aura pas plus au lancement qu'à l'exécution.

ciao...
BruNews, MVP VC++
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 févr. 2008 à 12:26
Salut,

BruNews >> sans commentaires
______________________________________
DarK Sidious
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 févr. 2008 à 16:07
Salut,

Oublie ces gros trolls et regarde ici. Ils proposent l'inverse : ne pas charger certains modules au démarrage pour aller plus vite.
On t'a peut être parler de vadump.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2008 à 16:23
vi vi, faut de suite aller voir ce qu'ils proposent mais surtout n'emploient jamais.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
16 févr. 2008 à 18:32
Mauvaise rubrique (Bar alors que CSharp (dot net))





<hr size="2" width="100%" />


http://deefaze.gnomz.com
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
16 févr. 2008 à 23:19
Salut, tu peux également éliminer la compilation JIT et compiler ton application en code natif avec NGen.exe ( dispo avec le framework ).
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2008 à 00:25
en PSEUDO natif, mais toujours bouillie de chat interprétée.

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
17 févr. 2008 à 02:48
Tu deviens prévisible BruNews..

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++ mais avec ngen.exe l'application sera déja compilée en code machine ce qui est un gain important par rapport au JIT.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2008 à 10:32
OK tu en compiles un ainsi et tu me l'envoies que je l'analyse, j'y croirai ensuite.

ciao...
BruNews, MVP VC++
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 févr. 2008 à 10:39
dir %windir%\assembly\NativeImages_v2.0.50727_32\*.ni.dll /s
fait ton choix

/*
coq
MVP Visual C#
CoqBlog
*/
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2008 à 10:42
Je n'ai pas ce dossier sur Win Server 2008.

ciao...
BruNews, MVP VC++
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 févr. 2008 à 11:08
Pas d'édition 64 sous la main mais je suppose que ce sera NativeImages_v2.0.50727_64 au lieu de NativeImages_v2.0.50727_32.
Si le framework .NET est installé, naturellement.

/*
coq
MVP Visual C#
CoqBlog
*/
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2008 à 11:21
Posé par force avec VS 2008 mais windir\assembly et 1 seul sous dossier "download", rien de plus.

Allez un petit coup de zip svp, j'aimerais vraiment jeter un oeil sur ces binaires "compilés".

ciao...
BruNews, MVP VC++
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 févr. 2008 à 11:25
Ne regarde pas par l'explorer, il y a une extension du shell qui personnalise un poil l'affichage.
D'où la cmd, ou au pire passe par Winrar, il te laissera voir les chose sous leur forme réelle.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
18 févr. 2008 à 01:53
Avec le framework tu as forcement ce dossier Assembly qui contient les images natives compilées spécifiquement pour ta machine.

Envoyé par mail pour l'analyse mais n'espère pas l'exécuter tel quel, il faudrait générer et installer le ficher sur ta machine pour ça.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 févr. 2008 à 02:37
Merci pour l'envoi.

Sur sytem 64 comme sur 32, on obtient l'injurebox comme quoi ce n'est pas une appli Win32 valide, mystique ça. Si compilé natif, on devrait avoir point d'entrée non trouvé dans dll xxx ou message de ce genre mais image binaire valide.

On voit d'autres trucs marrants dedans:
....
mov esi, eax
mov edi, esi
mov eax, esi
pop edi
pop esi
ret 0

Tout ceci ne fait absolument rien, les 3 MOV avant les POPs ne servent strictement à que dalle. Les POPs avant le RET indique bien une sortie de fonction correcte mais cet entassement d'instructions inutiles reste un mystère.
Je peux continuer à coder tranquille, c'est pas demain qu'on produira un logiciel avec pareille bouillie.

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
18 févr. 2008 à 10:53
Et encore t'as pas vu une application WPF avec son code XAML pré-compilé en BAML et contenu comme ressource dans l'exécutable.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
23 févr. 2008 à 00:04
Il n'a jamais été question d'executable autonome.

/*
coq
MVP Visual C#
CoqBlog
*/
0
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:24
Ce n'est carrément pas exécutable du tout, c'est une injurebox "IMAGE BINAIRE INVALIDE" qu'on obtient au lieu que le loader system afficherait la 1ere dépendance non trouvée.
C'est la CLR qui en fera du code exécutable après COMPLETE INTERPRETATION, rien à voir avec du compilé natif comme dit qlqs post plus tôt.

ciao...
BruNews, MVP VC++
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
23 févr. 2008 à 00:29
Oui, ngen n'a jamais permit de se passer de la CLR, ni de l'assembly de départ d'ailleurs.
http://msdn2.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous