java – CLR和JVM中动态类型的不同方法

.NET 4.0引入了对动态类型对象的调度调用的新支持.据我所知,这包括:

>没有改变CLR
> BCL中的新类型
>将新语法转换为新类型用法的新编译器

Java空间中,人们正在讨论adding a new dynamicinvoke bytecode to the JVM这样的调度由JIT处理,在中间语言的抽象之后.

Java方法得到了many significant parties的支持.

这些似乎是两种根本不同的方法.每个阵营有什么优点,为什么两个阵营都选择采取不同的路径?我对这两种解决方案的灵活性和运行时性能特别感兴趣.这两个VM最终都试图实现同样的目标吗?

解决方法:

保存中间语言指令集对于受管系统非常重要,因为它可以使新应用程序与已安装的运行时不兼容.

例如. Sun在引入泛型时避免了变化,这就是为什么Java中泛型的实现是半生不熟的.同时,MS为泛型引入了新的指令.

从理论上讲,引入动态调用的新指令可以为更优化的方法查找提供可能性(例如inline caching).

BTW,.NET 4.0将包含CLR版本,尽管AFAIK此版本更改将由更新的系统库引起.

上一篇:在C中触发事件并在C#中处理它们


下一篇:c# – 使用’Common Type System’作为编码标准