1

JVM内でTunered Generationプールを見つける方法を探しています。以前は、このプールを「Tunered Gen」という名前で見つけようとしましたが、場合によっては、このプールは「PS Old Gen」と名付けられました。そこで、すべての古いオブジェクトが格納されているプールを見つけるためのより一般的な方法を考えました。

どう思いますか?多分誰かが別の解決策を提案できますか?

    public MemoryPoolMXBean findTuneredGenerationMemoryPool(){

        List<MemoryPoolMXBean> memoryPoolsList = new ArrayList<MemoryPoolMXBean>();
        for(MemoryPoolMXBean pool: ManagementFactory.getMemoryPoolMXBeans()){
            if (pool.isCollectionUsageThresholdSupported() && pool.getType().equals( MemoryType.HEAP )){
                memoryPoolsList.add( pool );
            }
        }

        Collections.sort(memoryPoolsList, new Comparator<MemoryPoolMXBean>(){
            @Override
            public int compare(MemoryPoolMXBean pool, MemoryPoolMXBean otherPool) {

                return otherPool.getType().compareTo( pool.getType() );
            }});

        int oldestGenPoolIndex = memoryPoolsList.size() - 1;
        return memoryPoolsList.get( oldestGenPoolIndex );
    } 

よろしく、 マキシム

4

0 に答える 0