这是一个有缺陷的论点.是的,虚拟机可以使用更多信息 - 但与编译器相比,它们的时间和空间也大大减少.
此外,是的,如果你真的想,你绝对可以做到.但没有人这样做,所以通常不会发生.至少,不是出于优化原因,您可以将其用于沙盒.
理论上来说,是的,可以为C++制作JIT。它可以利用底层架构中的某些功能来积极优化代码。它还具有使应用程序在运行时加载时间更长的缺点。
当然,不会有垃圾收集,因此不会产生由此产生的开销,但优化因素是存在的。有没有人做过这方面的工作。有这方面的论文、工具吗?这种方法有多好?
这里有很大的误解。对每个用户定义的类型全面实施 GC 是主要开销。这是 Android、iOS 和 Windows mobile 都转向 C/C++ 来实现高性能应用程序的原因之一,尽管最初尝试仅使用托管虚拟机。
当然,额外的间接级别意味着 GC 可以自由地执行压缩内存等操作,但优化的 C/C++ 程序从一开始就已经在使用压缩内存了。这也意味着内存最初更加碎片化,这对于 C++ 擅长的高性能应用程序(处理大型连续缓冲区的应用程序,例如视频处理、光线跟踪或音频)来说是一个性能杀手。加工)。
此外,将每个 UDT 实例转换为引用意味着所有内容都在堆上,这有效地将原本几个时钟周期的操作变成了数百个时钟周期。
也就是说,为了解决你的问题的核心,当然,C++ 代码可以使用 JIT 构建,但你可能会发现,考虑到人们通常使用的静态性质等因素,并没有真正令人信服的理由这样做。 C++ 代码。
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |