小编soy*_*wiz的帖子

DynamicMethod prelink

我是用C#制作的psp模拟器的作者.

我正在使用ILGenerator生成大量"DynamicMethod".我正在将汇编代码转换为AST,然后生成IL代码并构建DynamicMethod.我在另一个线程中执行此操作,因此我可以在程序执行其他程序时生成新方法,以便它可以顺利运行.

我的问题是本机代码生成是懒惰的,因此在调用函数时生成机器代码,而不是在生成IL时生成.因此它在程序执行线程中生成,本机代码生成速度非常慢,因为它是asm-> ast-> il步.

我尝试过Marshal.Prelink方法,它在执行函数之前生成机器代码.它适用于Mono,但它不适用于MS .NET.

Marshal.Prelink(MethodInfo);
Run Code Online (Sandbox Code Playgroud)

有没有办法在MS .NET上预先链接DynamicMethod?

我想为函数添加一个布尔参数,如果设置,则立即退出函数,因此实际上没有执行任何代码.我可以用这种方式"预链接",但我认为这是一个我想避免的令人讨厌的解决方案.

任何的想法?

c# performance il abstract-syntax-tree

5
推荐指数
1
解决办法
344
查看次数

Typescript 0.9:模块功能

看起来你不能再在TypeScript 0.9中这样做了:

declare module "mymodule" {
    export function(): any;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法创建允许在0.9中调用导出模块的打字?

请注意,导出的函数没有名称.这是在以前版本的typescript中声明可调用模块的方法,因为有很多节点模块只导出一个函数.

typescript

5
推荐指数
1
解决办法
6173
查看次数

标签 统计

abstract-syntax-tree ×1

c# ×1

il ×1

performance ×1

typescript ×1