关于0型,1型和2型蹦床以及运行时错误的文章很多
“用完蹦床”
在iOS设备上。
我对如何在AOT交叉编译过程中增加不同蹦床类型的数量有很好的了解,但是,我对在运行时每次遇到上限时随意增加分配感到谨慎。
我最近添加了一个组件,该组件接收多个Func<>
参数,并且该组件的大多数使用者都在匿名创建Func<>
委托。我的假设是,尽管我可以期望每个匿名代表都会创建一个蹦床,但我似乎观察到的行为是,与其重复使用该蹦床,它继续创建类型0(ntrampoline [method trampolines?]每个执行匿名委托的时间。
一个非常有用的工具或api调用将使我能够在运行时监视,记录或分析应用程序,以观察蹦床的创建。
关于公开通用委托或匿名委托使用的副作用的任何指导也将受到赞赏。
感谢您提供正确方向的提示。
问候,
凯文·费伦
最佳答案
最好的选择是向mono-devel邮件列表询问这样的(非常具体的)问题,即,有几个问题(以及带有概要分析的建议)很难在这里回答(即使可以正确标记)。
我认为您已经阅读了以下链接(但它们可能会帮助人们对蹦床有所疑问)。
您还可以使用 --stats 选项从Mono获得一些统计信息。例如。
mono --stats myapp.exe
...
JIT statistics
Unwind info size : 198
Calls to trampolines : 626
JIT trampolines : 416
Unbox trampolines : 1
Static rgctx trampolines : 1
...
但是,在使用AOT(很多地方不同)并且您不控制应用程序执行的MonoTouch上下文中,它不会为您提供帮助。