Tag: jvm

JVM上的所有“Magic”方法都标记为Native吗?

“魔术”是指具有不用纯Java表达的语义的方法。 我知道所有native方法都很神奇,因为它们的实现是由底层运行时提供的,而不是由Java字节码提供的。 反之亦然吗? 所有魔法方法都是native ,还是有一些神奇的方法显然是用纯Java实现的,但是有一些JVM特殊shell的额外帮助? 用例是我想通过检测其字节码来修改Java的语义。 所有这些神奇的方法都是特殊情况,我将不得不以某种方式处理。 native的都很明显,但我想知道是否有任何无标记的魔术方法我需要注意和特殊情况。

如何识别Java字节码中的覆盖方法?

我现在专注于需要深入了解Java字节代码的项目。 在bcel的帮助下,我现在可以完成大部分工作。 我现在不清楚的一点是如何识别子类方法覆盖其基本代码? .class文件中是否记录了与指示此重写关系的方法相关联的属性,还是应该向后返回其基类可以比较方法签名? 任何提示将受到高度赞赏。

java缓存方法的结果

我使用 JMH来指定操作的复杂性。 如果您从未与JMH合作过,请不要担心。 JMH将多次启动estimateOperation方法,然后获得平均时间。 问题:[narrow]这个程序每次都会计算Math.cbrt(Integer.MAX_VALUE)吗? 或者它只计算一次然后返回缓存结果? @GenerateMicroBenchmark public void estimateOperation() { calculate(); } public int calculate() { return Math.cbrt(Integer.MAX_VALUE); } 问题:[broad]: JVM是否会缓存方法的结果?

如何在jvm上运行scala字节码?

如何在jvm上运行已编译的scala代码? 当我尝试以下命令时: java -cp scala-library.jar -cp bin com.mcmc5.Main 我收到以下错误: Exception in thread “main” java.lang.NoSuchMethodError: main 在scala代码中,我有一个名为Main的对象,它具有在那里定义的main函数。 它可以工作,如果我做scala -cp bin com.mcmc5.Main ,它工作正常。 有什么东西我不见了吗? 谢谢你,thejinx0r Edit1:这是我的代码:我希望它在JVM上运行的原因是因为我想要实际执行字节码的服务器没有安装scala。 这是我的主要基本上(它有一些在它之前定义的值和变量,但基本上: package com.mcmc5 import java.text.{DateFormat, NumberFormat, DecimalFormat, SimpleDateFormat} import java.util.{Date} object Main { def main( args: Array[String]) = { println(numberOfOutputStructures) var structureSolver = new MC(20); structureSolver.start() } } 但我仍然尝试使用java -cp scala-library.jar:bin […]

getResourceAsStream(file)在哪里搜索文件?

我对getResourceAsStream()感到困惑; 我的包结构如下: \src |__ net.floodlightcontroller // invoked getResourceAsStream() here |__ … |__ resources |__ floodlightdefault.properties //target |__ … 我想从floodlightdefault.properties中读取。 这是我的代码,位于net.floodlightcontroller包中: package net.floodlightcontroller.core.module; // … InputStream is = this.getClass().getClassLoader() .getResourceAsStream(“floodlightdefault.properties”); 但它失败了,得到的is == null 。 所以我想知道getResourceAsStream(file)究竟是如何搜索file 。 我的意思是它是通过某些PATH还是以某种顺序工作 ? 如果是这样,如何配置getResourceAsStream()查找的位置? 谢谢!

如何禁用JIT编译器的内在函数用法?

我正在对JVM进行一些性能测试,我想测量内在函数使用的影响。 我想在不进入解释模式的情况下禁用JIT对某些方法使用内在函数。 有没有办法做到这一点 ? 谢谢

内在函数和内联对Lambda性能的影响?

我已经使用了这个基准测试java8-lambda-performance-test ,在运行它时我做了以下几点: 1.Disabled内在用法 2.Disabled Inlining 3.Disabled编译模式 我发现禁用两个第一次优化对结果没有影响。 这很奇怪,而且当运行基准测试和打印内在时,我没有找到任何调用内在的compiledLambdaForm 由于数学内在函数大量使用_min,_pow …我期待禁用内在函数会降低性能

防止Cassandra转储hprof文件

我想阻止Cassandra转储hprof文件,因为我不需要使用它们。 我也有非常有限的磁盘空间(100 GB中的50GB用于数据),这些文件吞噬了所有磁盘空间,然后才能说“停止”。 我该怎么办呢? 是否有我可以用来擦除这些文件的shell脚本?

如何禁用sun jvm的内联优化?

我需要做一些实验,显示内联对我的代码的影响。 有谁知道如何禁用sun jvm内联? 我搜索了http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html并了解-XX:InlineSmallCode = n可以控制内联候选者的阈值。 那么-xx:InlineSmallCode = 0会起作用吗?

JVM垃圾收集

一般情况下(因为我知道有一个来自Oracle / sun和其他第三方的标准JVM实现以及MS),JVM是否只创建一个作为守护进程运行的垃圾收集线程来收集垃圾对象或者JVM是否产生了多个一个线程来完成垃圾收集?