2016-06-09 20 views
5

Questo codice funzionava correttamente. Sul riavviare il computer, mi dà l'errore:Eccezione durante il tentativo di acquisizione di un blocco JMH

ERROR: org.openjdk.jmh.runner.RunnerException: 
ERROR: Exception while trying to acquire the JMH lock (C:\WINDOWS\/jmh.lock): 
Access is denied, exiting. Use -Djmh.ignoreLock=true to forcefully continue. 
at org.openjdk.jmh.runner.Runner.run(Runner.java:213) 
at org.openjdk.jmh.Main.main(Main.java:71) 

Google-int l'errore non ha aiutato. Qualcuno può dirmi come aggiustarlo?

@State(Scope.Thread) 
public class test { 
    public ConcurrentHashMap<String,Integer> i = new ConcurrentHashMap<String, Integer>(10000); 
    public ArrayList<String> k = new ArrayList<String>(10000); 
    public int p=0; 

public void setup(){ 
    for(int m=0;m<1000;m++){ 
     int j=ThreadLocalRandom.current().nextInt(0,10000); 
     String jk=Integer.toString(j); 
     k.add(jk); 
     i.put(jk,j); 
    } 
} 

@Benchmark 
@BenchmarkMode(Mode.Throughput) 
@OutputTimeUnit(TimeUnit.MILLISECONDS) 
@Warmup(iterations = 3) 
@Measurement(iterations = 5) 
public void putKey(){ 
    int n=ThreadLocalRandom.current().nextInt(0,10000); 
    String nk=Integer.toString(n); 
    k.add(nk); 
    i.put(nk,n); 
} 

@Benchmark 
@BenchmarkMode(Mode.Throughput) 
@OutputTimeUnit(TimeUnit.MILLISECONDS) 
@Warmup(iterations = 3) 
@Measurement(iterations = 5) 
public int getKey(){ 
    p=ThreadLocalRandom.current().nextInt(0,10000); 
    p=p%k.size(); 
    return i.get(k.get(p)); 
} 
public static void main(String[] args) throws RunnerException{ 
    Options opt = new OptionsBuilder() 
      .include(".*" + test.class.getSimpleName() + ".*") 
      .forks(1) 
      .build(); 
    new Runner(opt).run(); 
} 

}

+1

Avete i permessi di scrittura nella cartella Windows di C? –

+0

@SauravSircar Hai provato a usare '-Djmh.ignoreLock = true'? Puoi anche guardare questo [post] (http://mail.openjdk.java.net/pipermail/jmh-dev/2016-January/002122.html) –

+1

Hai provato a eliminare manualmente il '' C: \ WINDOWS \/jmh.lock'' file? –

risposta

Problemi correlati