据我所知,jit代码在程序运行时永远不会从内存中释放出来。这是否意味着在表达式树上重复调用.Compile()会泄漏内存?
这意味着只能在静态构造函数中编译表达式树,或者以其他方式缓存它们,这可能并不简单。对吗?

最佳答案

他们可能是普通中等教育…LambdaExpression.Compile()使用LambdaCompiler.Compile(LambdaExpression, DebugInfoGenerator)类,而through one of the LambdaCompiler constructors使用DynamicMethod类,来自msdn:
定义并表示可编译、执行和丢弃的动态方法。丢弃的方法可用于垃圾收集。

关于c# - 编译的表达式树会泄漏吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43041190/

10-10 14:51