iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JVM内置函数Intrinsics介绍
  • 906
分享到

JVM内置函数Intrinsics介绍

2024-04-02 19:04:59 906人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.什么是内置?2.JVM上的内置函数3.性能收益4.不可能的实现5.识别Java中的Intrinsics语言6.总结1.什么是内置? 内置函数是由我们的编程语言的编译器或解释器

1.什么是内置?

内置函数是由我们的编程语言的编译器或解释器进行特殊处理的函数。更具体地说,这是一种特殊情况,因为各种原因,编译器或解释器可以用替代实现替换函数。

编程语言通常通过理解一个特定的方法调用是特殊的来处理这个问题,无论何时我们调用这个方法,结果都是不同的。这样一来,我们的代码看起来与正常代码没有什么不同,但编程语言的实现可以在特殊情况下进行干预,以提供额外的好处。

它的具体工作方式因编程语言、操作系统和硬件而异。然而,由于这些都是为我们处理的,我们通常不需要知道这些细节中的任何一个。

本质可以带来各种好处。用本机代码替换特定算法可以使它们性能更好,甚至可以利用操作系统的特定功能或底层硬件。

2.JVM上的内置函数

JVM通过用替代版本替换精确类上的精确方法调用来实现内置函数。JVM自己处理这个问题,所以它只适用于核心类和特定的体系结构。它还只允许交换某些方法,而不是整个类。

具体的工作方式在JVM之间会有所不同。这不仅包括JVM的不同版本,例如Java 8和Java 11。这还包括不同的JVM目标——例如linuxwindows——尤其是JVM供应商——oracle和IBM。在某些情况下,传递给JVM的某些命令行标志可能会影响它们。

这种多样性意味着无法仅基于应用程序来确定哪些方法将被内置方法替换,哪些不会。这将根据运行应用程序的JVM而有所不同。但在某些情况下,这可能会导致令人惊讶的结果——包括通过简单地更改所使用的JVM而获得的显著性能优势。

3.性能收益

intrinsic通常用于实现同一代码的更高效版本,例如,通过利用正在运行的OS或CPU的实现细节。有时这是因为它可以使用更高效的实现,而有时它可以使用特定于硬件的功能。

例如:HotSpot jdk对java中的许多方法都有一个内在的实现java.lang.Math。根据具体的JVM,它们可能使用CPU指令来实现,以完成所需的精确计算。

一个简单的测试将证明这一点。例如,以java.lang.Math.sqrt()为例。

我们可以编写一个测试:

for (int a = 0; a < 100000; ++a) {
    double result = Math.sqrt(a);
}

此测试将执行100000次平方根运算,大约需要123ms。但是,如果我们用Math实现的副本替换这段代码。Math.sqrt():

double result = StrictMath.sqrt(a);

这段代码执行同样的操作,但执行时间为166ms。通过复制实现,而不是允许JVM用内部版本替换它,这将增加35%。

4.不可能的实现

在其他情况下,intrinsic用于代码无法在Java中实现的情况。这些通常是为非常低级的情况保留的。

例如,让我们看看java.lang.Thread线程类中的onSpinWait()方法。此方法表示此线程当前未执行任何工作,并且可以将CPU时间分配给另一个线程。为了实现这一点,它需要在尽可能低的水平上工作。

HotSpot JDK for x86体系结构使用PAUSE操作码直接在CPU上实现这一点。实现这一点的唯一其他方法是使用对本机代码的JNI调用,而这其中涉及的开销首先会抵消调用的好处。

5.识别Java中的Intrinsics语言

不幸的是,没有确定的方法来识别可能被内在版本取代的方法。这是因为不同的JVM,甚至是不同平台上的同一个JVM,会为不同的方法实现这一点。

但是,从Java 9开始使用HotSpotJVM时,所有可能被替换的方法都会使用@HotSpotInTrensicAndidate注释。添加此注释不会自动导致方法被替换。实际上,这种情况发生在底层JVM中。相反,JVM开发人员知道这些方法是特殊的,需要小心使用。

如果其他JVM被识别出来,它们可能会以不同的方式处理这个问题。这包括Java8或更早版本中的Hotspot JVM。

6.总结

我们无法编写依赖于内置函数存在的程序,因为无法知道它们是否在运行时JVM上可用。然而,它们是JVM可以用来改进程序工作方式的一种引人注目的方法。

这些内在特性可以——而且经常被——添加到新版本的JVM中。因此,只需升级我们正在运行的JVM,就可以改进我们已经运行的代码,所以这是确保我们保持依赖项和运行时最新的另一个原因。

到此这篇关于JVM内置函数Intrinsics介绍的文章就介绍到这了,更多相关JVM内置函数Intrinsics内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JVM内置函数Intrinsics介绍

本文链接: https://www.lsjlt.com/news/140269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JVM内置函数Intrinsics介绍
    目录1.什么是内置?2.JVM上的内置函数3.性能收益4.不可能的实现5.识别Java中的Intrinsics语言6.总结1.什么是内置? 内置函数是由我们的编程语言的编译器或解释器...
    99+
    2024-04-02
  • JVM内置函数Intrinsics有什么用
    这篇文章主要介绍“JVM内置函数Intrinsics有什么用”,在日常操作中,相信很多人在JVM内置函数Intrinsics有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM内置函数Intrinsi...
    99+
    2023-06-29
  • PHP 内置函数介绍
    php 提供了一系列内置函数用于执行各种任务,包括:字符串操作(strcmp、strtoupper、strtolower)数组处理(array_push、array_pop、in_arr...
    99+
    2024-04-19
    php 内置函数
  • python内置函数语法介绍
    本篇内容介绍了“python内置函数语法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 前言   在编写Pytho...
    99+
    2023-06-04
  • Python 内置函数:——locals 和 globals介绍
    locals 和 globals这两个函数主要提供,基于字典的访问局部和全局变量的方式。在理解这两个函数时,首先来理解一下 Python 中的名字空间概念。Python 使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字...
    99+
    2023-06-02
  • MySQL内部函数介绍
    文章目录 字符串函数数学函数日期函数聚合函数系统信息函数格式化函数 字符串函数 1. length(str) 计算字符串的长度。 select length('1+1=wang'),length('1+1=王'); ...
    99+
    2023-08-17
    mysql 数据库 函数
  • Golang内置函数使用方法详细介绍
    Golang是一种非常强大的编程语言,其提供许多内置函数以方便开发者进行编程。在本文中,我们将详细介绍Golang内置函数的使用方法,以供开发者参考。make函数make函数主要用于创建一个数据类型的对象(slice、map或channel...
    99+
    2023-05-16
    Golang(Go语言) 内置函数(built-in functions) 使用方法(usage methods)
  • 基于jvm java内存区域的介绍
    jvm虚拟机在运行时需要用到的内存区域.广泛一点就是堆和栈,其实不然,堆和栈只是相对比较笼统的说法,真正区分有如下几个...
    99+
    2023-05-31
    java jvm 内存
  • php怎么删除XML节点(内置函数介绍)
    在 PHP 中,删除 XML 文档中的节点是一项常见的任务。XML(可扩展标记语言)是一种常见的数据格式,常常用于存储和交换信息。在 XML 文档中,节点是文档的基本组成部分,因此删除节点在处理 XML 数据时经常需要使用。PHP 为操作 ...
    99+
    2023-05-14
  • IntelliJ IDEA设置JVM运行参数的图文介绍
    目录前言配置方式及优先级代码中配置对某个Application设置1 进入IDEA,Run–>Edit Configurations选中要添加JVM参数的Appli...
    99+
    2024-04-02
  • Python函数介绍:max函数的介绍及示例
    Python函数介绍:max函数的介绍及示例函数在Python编程中是非常重要的概念。Python内置了许多有用的函数,其中一个是max函数。本文将介绍max函数的用法以及示例代码,帮助读者更好地理解和运用。max函数的作用是返回给定参数的...
    99+
    2023-11-03
    Python 函数 max函数
  • Python函数介绍:exec函数的介绍及示例
    Python函数介绍:exec函数的介绍及示例引言:在Python中,exec是一种内置函数,它用于执行存储在字符串或文件中的Python代码。exec函数提供了一种动态执行代码的方式,使得程序可以在运行时根据需要生成、修改和执行代码。本文...
    99+
    2023-11-03
    示例 介绍 exec函数
  • Python函数介绍:tuple函数的介绍及示例
    Python函数介绍:tuple函数的介绍及示例在Python编程语言中,tuple(元组)是一种不可变的有序数据类型。它类似于列表,但与列表不同的是,元组一旦创建后就无法修改。元组可以包含不同类型的数据,并以小括号()来表示。tuple函...
    99+
    2023-11-04
    示例 Python函数 tuple函数
  • Python函数介绍:int函数的介绍及示例
    Python函数介绍:int函数的介绍及示例Python是一种强大的编程语言,其广泛用于数据分析、人工智能、web开发等领域。Python拥有众多内置函数,此篇文章将对Python中的一个常用函数——int进行介绍,并提供具体示例。一、in...
    99+
    2023-11-04
    示例 Python函数 Int函数
  • Python函数介绍:map函数的介绍及示例
    Python函数介绍:map函数的介绍及示例在Python编程中,函数是一种非常重要的工具,可以用来封装一段可复用的代码。其中,map函数是一个强大且常用的函数,它可以对一个可迭代对象中的每一个元素应用一个指定的函数,然后返回一个新的可迭代...
    99+
    2023-11-03
    示例 Python函数 map函数
  • Python函数介绍:format函数的介绍及示例
    Python函数介绍:format函数的介绍及示例在Python中,format()函数是一个非常重要且常用的函数,它用于对字符串进行格式化处理。通过format()函数,我们可以将一些变量、数据和文字按照一定的格式拼接在一起,并输出成我们...
    99+
    2023-11-03
    介绍 关键词:Python函数 format函数
  • Python函数介绍:hasattr函数的介绍及示例
    Python函数介绍:hasattr函数的介绍及示例在Python中,hasattr()是一个内置函数。它的主要功能是检查一个对象是否有指定的属性或方法,并返回一个布尔值来指示是否存在。这个函数的使用方法非常简单,仅需要提供两个参数:一个对...
    99+
    2023-11-03
    示例 函数介绍 hasattr
  • Python函数介绍:zip函数的介绍及示例
    Python函数介绍:zip函数的介绍及示例Python是一种高级语言,它提供了许多有用的函数来帮助开发人员快速地编写程序。其中一个函数就是zip函数。Zip函数是Python中的内置函数之一,它可以接受一组可迭代对象(包括列表、元组、集合...
    99+
    2023-11-03
    示例 介绍 zip函数
  • Python函数介绍:slice函数的介绍及示例
    Python函数介绍:slice函数的介绍及示例Python是一种简单易学、功能强大的高级编程语言,拥有丰富的内置函数和标准库。其中,slice函数是Python中非常实用的一个函数,用于创建一个切片对象,用来切割序列(包括字符串、列表等)...
    99+
    2023-11-03
    示例 Python函数 关键词提取: slice函数
  • Python函数介绍:bin函数的介绍及示例
    Python函数介绍:bin函数的介绍及示例Python是一种强大而灵活的编程语言,它提供了许多内置函数,其中之一就是bin()函数。bin()函数用于将整数转换为二进制字符串。在本文中,将介绍bin()函数的...
    99+
    2023-11-04
    函数 关键词:Python bin函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作