交叉编译器与 JVM

2023-12-10

我想知道 JVM 的用途。如果创建 JVM 是为了允许平台无关的可执行代码,那么能够生成平台无关的可执行代码的交叉编译器就不能取代 JVM 吗?

有关交叉编译器的信息检索自:http://en.wikipedia.org/wiki/Cross_compiler


字节码格式和 JVM 的优点是能够根据实际运行期间获取的分析数据在运行时优化代码。换句话说,没有静态编译的本机代码是win.

运行时编译的优点的一个特别有趣的例子是单态调用点:对于代码中调用实例方法的每个位置,运行时都会准确跟踪调用该方法的对象类型。在很多情况下,事实证明只涉及一种对象类型,如果它是静态方法(无静态方法),JVM 将编译该调用。vtables涉及)。这将进一步使其能够inline调用,然后进行更多优化,例如转义分析、寄存器分配、常量折叠等等。

事实上,你的批评可能(有人说,should)被颠倒了:为什么Java要定义字节码,修复许多本来可以留给实现的设计决策?现代趋势是分布源代码并让 JIT 编译器处理它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交叉编译器与 JVM 的相关文章

随机推荐

  • 范围以及如何使用 VB.Net 缩小范围

    如果我想缩小 C 中变量的范围 我可以引入额外的大括号 即 class Program static void Main string args myClass x new myClass x MyProperty 1000 Console
  • 使用 Fragment 按钮打开另一个 Activity

    好吧 我尝试了两种类型的代码来让它工作 当我按下按钮进入另一个活动时 它不断地给我强制关闭 我正在使用一个片段 该片段代码中有一个按钮 但我似乎无法让它工作 我不是一名经验丰富的 Android 开发人员 但我正在尽力学习 这是 Java
  • NaN 作为特殊参数

    我正在写一个小库 你可以在其中设置范围 起点和终点是双精度的 该库具有该范围的一些内置或计算的默认值 但是一旦通过范围设置函数设置了它们 就无法返回到默认值 因此我喜欢做的就是使用NaN值作为使用默认值的指示符 但是我没有找到NaN的任何标
  • OData AspNetCore 对使用 $query 的长 URL 的支持不起作用

    正如所指出的this文章 与 query关键字可以解决7 5版本之后OData URL过长的问题Microsoft AspNetCore OData 但在我的项目中 我正在使用版本 8 preview3 我尝试使用这个但我不断得到404 未
  • OpenCV中无法使用SURF、SIFT

    我正在尝试一个简单的事情 比如 detector cv2 SIFT 并得到这个严重的错误 detector cv2 SIFT AttributeError module object has no attribute SIFT 我不明白 因
  • 根据多个条件按列名称过滤数据框

    我有一个包含许多列的 pandas 数据框 我想根据列名称但使用两个不同的标准来过滤数据框 我尝试使用 df filter 指定项目和正则表达式 但这是不允许的 如果列名称为 用户名 XYZ 1001 XYZ 1002 XYY 1001 X
  • GLIBC 安装失败,程序丢失或太旧

    我曾尝试使用非 root 来安装 glibc 2 15 经过谷歌搜索并尝试两天后 我在这里寻求帮助 After configure it output following error glibc 2 15 configure prefix
  • 反转范围会导致类型不匹配

    例如 我想使用一个变量来保存通常是某个范围的内容Range
  • JavaScript 中的查询字符串

    通过使用document referrer我们会得到JavaScript中所有URL的引用 例如 http localhost testwordpress wp admin admin php page thesis options upg
  • 如何在node中使用axios发布表单数据

    EDIT更改标题以便对其他人有帮助 我正在尝试将图像上传到imgbb使用 Axios 使用他们的 api 但不断收到错误响应Empty upload source imgbb 的 API 文档显示了以下示例 curl location re
  • 组合 datetime.date 和 datetime.time 对象的 Pythonic 方式

    我有两个代表同一事件实例的对象 一个保存日期 另一个保存该事件的时间 我想创建一个日期时间对象 由于不能简单地添加日期和时间对象 以下调用失败 datetime date 2011 01 01 datetime time 10 23 它位于
  • 如何在 python/matplotlib 中设置默认刻度参数?

    我希望我的所有绘图都具有指向内部的刻度 而不是 matplotlib 默认的外部 所以我正在寻找一种使用 plt rcparams 设置它的方法 对于每个情节 目前我正在做 ax tick params direction out 但这仅适
  • Ionic:任务“:mergeDebugResources”执行失败(某些文件处理失败)

    离子构建命令工作正常 直到我决定添加一些自定义启动屏幕并运行以下命令 离子资源 每次我运行构建命令时 我都会在运行构建命令时遇到以下错误 mergeDebugResourcesAAPT err Facade for 35126910 lib
  • SASS - 增加一个类并选择列表中的下一个变量

    我正在尝试进行一个设置 将类从 1 增加到 12 并根据变量列表 也是 12 个变量 设置背景颜色 我很接近 但没有得到我所希望的 这是我第一次涉足 SASS 中的控制指令 所以请原谅我的无知 目前 我正在成功增加班级 这是我错过的选择增量
  • 如何在 MVVM WPF 应用程序中向父视图通知子视图事件?

    我有一个基于 MVVM 的 WPF 桌面应用程序 我正在利用 MVVMLight 和 Prism 创建包含视图和子视图的用户控件 我在子视图上有按钮 假设这是一个关闭按钮 将单击事件的通知从嵌套子视图传播到其包含的父视图的最佳方法是什么 子
  • Linq,如何做groupBy?

    项目表 ID 部门 ID 年份 名称 级别 Id 1 DeptId 1 Year 2000 Name ABC Level 1 Id 2 DeptId 1 Year 2001 Name ABC1 Level 1 Id 3 DeptId 1 Y
  • ASP.NET Core 3.1 中的数据表服务器端处理

    我是新来的数据表通过 AJAX 调用 我需要对数千条记录实施服务器端处理 我正在学习教程 但我对服务器端处理感到困惑 我在尝试从数据源渲染数据时收到错误 让我发布所有相关代码 希望您能帮助我找出哪里出错了 由于我是新手数据表和 Ajax 我
  • 如何在 ASP.Net MVC3 中将值从一个控制器传递到另一个控制器

    你好在我的项目中我必须传递欢迎信息username到索引页 它是一个 MVC3 ASP Net Razor 项目 有两个控制器 第一个是登录控制器 第二个是家庭控制器 从登录控制器 我必须通过UserName登录者的视图页面 登录控制器重定
  • jmvfw.dll:无法在 AMD 64 位平台上加载 IA 32 位 .dll

    系统 赢7 64位 JMF 通过启动 JMstudio 在我的系统上工作 它找到我的驱动程序并启动我的麦克风和网络摄像头 但是当我运行 Netbeans 代码时它不起作用 我已按照此网站上的以下步骤在 Win 7 64 位上安装 JMF 但
  • 交叉编译器与 JVM

    我想知道 JVM 的用途 如果创建 JVM 是为了允许平台无关的可执行代码 那么能够生成平台无关的可执行代码的交叉编译器就不能取代 JVM 吗 有关交叉编译器的信息检索自 http en wikipedia org wiki Cross c