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

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


Topics:
java 8 ,performance ,synchronized

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}