2011-11-11 7 views
4
Il

ya pas mal de messages concernant le type 0, type 1 et de type 2 trampolines et l'erreur d'exécution deComment profiler Monotouch pour voir le nombre de trampolines (par type) créés lors de l'exécution?

"manqué de trampolines"

sur les appareils iOS. J'ai une bonne compréhension de la façon d'augmenter le nombre de types de trampoline différents au cours de la compilation croisée AOT, cependant, je me méfie d'augmenter arbitrairement les allocations chaque fois que nous courons dans le plafond pendant l'exécution.

J'ai récemment ajouté un composant qui reçoit plusieurs arguments Func<>, et la majorité des utilisateurs du composant créent les délégués Func<> de manière anonyme. Mon hypothèse était que même si je pouvais espérer que chaque délégué anonyme aboutirait à la création d'un trampoline, le comportement que je suis en train d'observer est qu'au lieu de réutiliser ce trampoline, il continue à créer le type 0 (ntrampoline [méthode trampolines?] temps le délégué Anon est exécuté.

ce qui serait extrêmement utile est un outil ou un appel api qui me permettrait de surveiller, connectez-vous ou le profil de l'application lors de l'exécution d'observer la création de trampoline.

Toute orientation sur le côté les effets de l'exposition d'un délégué générique ou de l'utilisation d'un délégué anonyme seraient également appréciés

Merci pour les conseils dans la bonne direction sur.

Cordialement, Kevin Ferron

Répondre

3

Votre meilleur pari est de poser des questions (très précises) à la liste de diffusion mono-devel, à savoir il y a plusieurs questions (et suggestions profilage wrt) qui rendraient difficile de répondre ici (même si cela pourrait être étiqueté correctement). Je suppose que vous avez déjà lu les liens ci-dessous (mais ils pourraient aider les gens à s'interroger sur les trampolines).

Vous pouvez également obtenir des statistiques de Mono en utilisant la - stats option. Par exemple.

mono --stats myapp.exe 

... 
JIT statistics 
Unwind info size     : 198 
Calls to trampolines    : 626 
JIT trampolines      : 416 
Unbox trampolines     : 1 
Static rgctx trampolines   : 1 
... 

Cependant, il ne vous aidera pas dans le contexte MonoTouch où AOT est utilisé (beaucoup de chose est différent) et où vous ne contrôlez pas l'exécution de l'application.

Questions connexes