拳击会导致性能问题吗?

2023-11-21

我正在开发一个项目,其中我们正在生成一种编译为 java 的语言。我们使用的框架(xtext)在其生成的代码中大量使用了装箱。 具体来说,如果您有如下声明:

int i = 1;
int j = 2;
int k = i + j;

然后编译后的代码如下所示:

IntegerExtensions.operator_plus(((Integer)i), ((Integer)j))

现在,在我正在从事的项目中,在某些情况下,特定的基本二进制操作将非常常见(尤其是增量和比较)。

我的问题是:这是否会成为性能问题,或者 JIT(或类似的智能 JVM 功能)会简单地意识到发生了什么并解决所有问题吗?

请在发帖前阅读:我对收到“你不应该关心,让它可读”的回复不感兴趣。这段代码是生成的,我根本不关心生成的代码的可读性。我真正关心的是我们不会因此而受到重大的性能影响。

Thanks


这实际上会产生影响。当演员到Integer发生时它将转换int to Integer using Integer.valueOf(int n)方法。此方法将检查该值是否在缓存范围内(-128 到 127),如果不在,则会创建new Integer(n)

影响的大小有大有小,需要你自己去测试。

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

拳击会导致性能问题吗? 的相关文章

随机推荐

  • 如何将 NSRect 更改为 CGRect?

    void drawRect NSRect rect imgRect orgin NSZeroPoint imgRect size appleImage size drawRect self bounds appleRect drawInRe
  • Fragment.onCreateView 具有空容器

    以下代码在 Android 1 6 上运行 因此我使用片段的兼容性包 在下面的TestFragment是一个静态嵌套类 public class FragmentTestActivity extends FragmentActivity O
  • 补丁请求 Android Volley

    我目前正在一个项目中使用 Android 的 Volley 网络库 我已经从以下位置拉下了凌空的主分支https android googlesource com platform frameworks volley 所以我的库项目应该是最
  • R .libPaths() RStudio 和命令行 R 之间的区别

    当我从命令行运行 R 时 gt library ggplot2 gt path package ggplot2 1 home yang R x86 64 pc linux gnu library 2 13 ggplot2 gt libPat
  • 为 iOS(iPhone 和 iPad)制作两个故事板

    是否可以只制作一个应用程序 并在其中制作两个故事板 一个用于 iPhone 一个用于 iPad 我不喜欢在 iPad 上运行应用程序并单击 2x 按钮的想法 我的想法是创建两个故事板 并有一个入门课程 该课程将检查您使用的设备是 iPhon
  • 如何使用 Python 和 Gracenote 识别音乐样本?

    我最近发现了GNSDK Gracenote SDK 似乎提供了多种编程语言的示例 通过指纹识别音乐样本 然后请求其音频数据库获取相应的艺术家和歌曲标题 但文档太糟糕了 如何使用 Python 和 GNSDK 执行音频样本文件的识别 提供的文
  • SBT 0.10 和 IDEA 初学者指南

    我是 SBT 新手 不确定如何开始项目 有人可以向我指出创建 Hello World 类型项目的初学者指南 或者给我一些线索吗 我首选的 IDE 是 IDEA 我跑了sbt idea根据说明IDEA 插件页面 目前我有点困惑 因为 没有创建
  • 从 Rails 返回文件

    初学者铁路问题 如何从 Rails 中的控制器返回文件 我熟悉返回 渲染 JSON 对象 但是我从未返回 渲染带有任意扩展名的文件 从阅读周围所以听起来像render nothing gt true有帮助 我只是在寻找一些指导或相关文档 您
  • 如何使用 dplyr 编程语法来创建和计算变量名称

    我想使用 dplyr 编程语法动态输入变量名 但是 正如许多人所描述的那样 这可能非常令人困惑 我尝试过各种 quo enquo 的组合 等等都无济于事 这是我的代码的最简单形式 library tidyverse df lt tibble
  • 按指定顺序按 id 查找 ActiveRecord 对象的简洁方法

    我想获取给定 id 数组的 ActiveRecord 对象数组 我假设 Object find 5 2 3 将返回一个依次包含对象 5 对象 2 对象 3 的数组 但我得到的数组按对象 2 对象 3 对象 5 的顺序排列 ActiveRec
  • 使用 WinAPI 进行简单的 AES 加密

    我需要在我的 Qt C 应用程序中进行简单的单块 AES 加密 解密 这是一个 让诚实的人诚实 的实现 所以只是一个基本的encrypt key data 是必要的 我不担心初始化向量等 我的输入和密钥将始终恰好是 16 个字节 I d r
  • 在网络上获取 Python 脚本输出的最简单方法是什么?

    我有一个连续运行的 python 脚本 它每 30 秒输出 2 行信息 我希望能够在网络上查看此输出 特别是 我希望网站能够自动更新 每 30 秒在页面 网站顶部添加新输出 而无需刷新页面 我知道我可以用 javascript 做到这一点
  • GWT:在服务器代码中访问 i18n 消息

    我有一个扩展的接口com google gwt i18n client Messages类 我用它在 GWT 应用程序中检索 i18n 消息 它看起来像这样 public interface MyMessages extends com g
  • jQuery 触发 DatePicker 更改事件

    我有以下代码 custom datepicker selector datepicker weekStart 1 on changeDate function en var correct format correct format en
  • 未标记 AcceptVerbs、HttpGet 或 HttpPost 的控制器操作的默认行为是什么?

    如果我创建一个控制器操作并且不使用它来装饰它AcceptVerbs HttpPost or HttpGet 默认行为是什么 该操作是否允许任何访问方法或默认为GET 它可以通过任何动词访问
  • java中equals方法的实现

    这是我对 Coor 类的 equals 类的实现 它只包含 2 个整数 x 和 y 这是实现该方法的正确方法吗 public boolean equals Object obj if obj null obj getClass this g
  • Python3 Tkinter 字体不工作

    我将 python 3 3 与 tkinter 一起使用 并且安装了 python3 tk 包 在大多数文档中 使用旧的 import tkFont 它不再起作用 这应该有效 from tkinter import font appHigh
  • C++ 中的虚拟网络摄像头

    我想编写一个新的虚拟网络摄像头驱动程序 例如它将采用 AVI 或实时流作为屏幕并将其作为网络摄像头源进行流式传输 我真的不会有网络摄像头 我想添加一个可以传输桌面屏幕的虚拟网络摄像头 我应该在内核模式下编写一个网络摄像头来做到这一点 如果是
  • 遍历并修改dict结构的树状列表

    我有一个如下所示的结构 id 4 children None id 2 children id 1 children id 6 children None id 5 children None id 7 children id 3 chil
  • 拳击会导致性能问题吗?

    我正在开发一个项目 其中我们正在生成一种编译为 java 的语言 我们使用的框架 xtext 在其生成的代码中大量使用了装箱 具体来说 如果您有如下声明 int i 1 int j 2 int k i j 然后编译后的代码如下所示 Inte