Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Java 8 Method Graph in Respect to Performance

DZone's Guide to

Java 8 Method Graph in Respect to Performance

· Performance Zone
Free Resource

Download our Introduction to API Performance Testing and learn why testing your API is just as important as testing your website, and how to start today.

It may involve synchronized blocks and/or methods when you call methods of Java platform. If the method you call itself is synchronized you may be noted by tiny icon or otherwise within IDE such as Eclipse in auto-proposal coding, but probably the synchronized is involved potentially, that would become problematic in situation of single threaded performance critical program and it’s not easy to find out. By parsing rt.jar using ASM, this document presents a full calling graph of methods of rt.jar of Java 8 to help quick check, it’s organized in a tree formatted with indents with below rules.

  • S denotes synchronized method
  • SI denotes synchronized block inside method body
  • Parent node is called by children
  • awt and swing packages are excluded
  • The first level must be synchronized on either method or block

Below is just a sample, it's too long to post, if you need please feel free to email me.

  SI java/io/FileInputStream.getChannel()Ljava/nio/channels/FileChannel;
     sun/nio/cs/StreamDecoder.getChannel(Ljava/io/FileInputStream;)Ljava/nio/channels/FileChannel;
  SI java/io/FileOutputStream.close()V
     sun/rmi/log/ReliableLog.writeVersionFile(Z)V
     sun/rmi/log/ReliableLog.createFirstVersion()V
     sun/rmi/log/ReliableLog.getVersion()V
     com/sun/corba/se/impl/util/ORBProperties.main([Ljava/lang/String;)V
     sun/applet/AppletProps$2.run()Ljava/lang/Object;
     java/awt/color/ICC_Profile.write(Ljava/lang/String;)V
     sun/security/tools/keytool/Main.doCommands(Ljava/io/PrintStream;)V
     com/sun/xml/internal/org/jvnet/staxex/Base64Data$Base64StreamingDataHandler.moveTo(Ljava/io/File;)V
S    sun/security/krb5/internal/ccache/FileCredentialsCache.save()V
     sun/net/www/MimeTable.saveAsProperties(Ljava/io/File;)Z
S    sun/net/www/MimeTable.save(Ljava/lang/String;)Z
S    javax/management/modelmbean/RequiredModelMBean.writeToLog(Ljava/lang/String;Ljava/lang/String;)V
     java/io/FileOutputStream.finalize()V
     java/lang/ProcessImpl.start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
     com/sun/media/sound/StandardMidiFileWriter.write(Ljavax/sound/midi/Sequence;ILjava/io/File;)I
     jdk/management/resource/internal/inst/StaticInstrumentation.writeOutputClass(Ljava/io/File;[B)V
  SI java/io/FileOutputStream.getChannel()Ljava/nio/channels/FileChannel;
  SI java/io/FilePermissionCollection.add(Ljava/security/Permission;)V
  SI java/io/FilePermissionCollection.elements()Ljava/util/Enumeration;
  SI java/io/FilePermissionCollection.implies(Ljava/security/Permission;)Z
  SI java/io/FilePermissionCollection.writeObject(Ljava/io/ObjectOutputStream;)V


Find scaling and performance issues before your customers do with our Introduction to High-Capacity Load Testing guide.

Topics:
java 8 ,performance ,synchronized

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}