相关疑难解决方法(0)

使用Java 7进行转义分析/堆栈分配的资格

我正在使用Java 7中的转义分析进行一些测试,以便更好地了解哪些对象有资格进行堆栈分配.

这是我编写的用于测试堆栈分配的代码:

import java.util.ArrayList;
import java.util.Iterator;


public class EscapeAnalysis {

    private static final long TIME_TO_TEST = 10L * 1000L; // 10s

    static class Timestamp {
        private long millis;
        public Timestamp(long millis) {
            this.millis = millis;
        }
        public long getTime() {
            return millis;
        }
        public void setTime(long time) {
            millis = time;
        }
    }

    public static void main(String[] args) {
        long r = 0;
        System.out.println("test1");
        r += test1();
        System.out.println("test2");
        r += test2();
        System.out.println("test3");
        r += test3();
        System.out.println("test4");
        r …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection jvm escape-analysis java-7

11
推荐指数
1
解决办法
3815
查看次数

Java可以在堆栈上分配列表吗?

每当我在java中发起一个列表时,我都会这样做

List<Integer> list = new LinkedList<>();
Run Code Online (Sandbox Code Playgroud)

我假设这将在堆上分配列表.不知道我是否可以在堆栈上分配列表?

java heap stack

9
推荐指数
2
解决办法
2773
查看次数

JAVA 9 及更高版本中的逃逸分析和堆栈分配优化改进

HotSpot Java 9-13 的堆栈分配优化规则是否不太严格?

在 Java 7 和 Java 8 HotSpot 中,对象的堆栈分配(由于称为标量对象替换的 JVM 优化)是可能的,但要在线程堆栈上实现无垃圾分配,必须满足许多严格的约束。

针对 Java 8(HotSpot、OpenJDK 8)启用堆栈分配优化的规则总结在这个问题的精彩回答中: Hotspot 什么时候可以在堆栈上分配对象? 至于 Java 7,这里: Eligibility for escapeanalysis/stack allocate with Java 7

在这个问题中,我想了解较新的 JDK 版本中 EA 和堆栈分配优化的当前状态是什么?其他 Java VM(例如 OpenJ9)是否有不同的规则?

java jvm compiler-optimization escape-analysis stack-allocation

5
推荐指数
0
解决办法
934
查看次数