Advertisement
Guest User

Cost of Java Finalizers

a guest
May 8th, 2015
600
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.82 KB | None | 0 0
  1. package bench;
  2.  
  3. import org.openjdk.jmh.annotations.Benchmark;
  4.  
  5. import java.lang.ref.PhantomReference;
  6. import java.lang.ref.ReferenceQueue;
  7.  
  8. public class Finalizer {
  9.  
  10.     @Benchmark
  11.     public Object plain() {
  12.         return new Plain();
  13.     }
  14.  
  15.     @Benchmark
  16.     public Object finalizable() {
  17.         return new Finalizable();
  18.     }
  19.  
  20.     @Benchmark
  21.     public Object phantom() {
  22.         return new Phantom();
  23.     }
  24.  
  25.     static class Plain {
  26.     }
  27.  
  28.     static class Finalizable {
  29.         @Override
  30.         protected void finalize() throws Throwable {
  31.             super.finalize();
  32.         }
  33.     }
  34.  
  35.     static class Phantom {
  36.         static final ReferenceQueue<Phantom> QUEUE = new ReferenceQueue<>();
  37.  
  38.         public Phantom() {
  39.             new PhantomReference<>(this, QUEUE);
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement