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

Maintain Application Performance with real-time monitoring and instrumentation for any application. Learn More!

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


Collect, analyze, and visualize performance data from mobile to mainframe with AutoPilot APM. Learn More!

Topics:
java 8 ,performance ,synchronized

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}