1The following are examples of j_syscalls.d. 2 3This is a simple script to count executed Java methods and system calls. 4Here it traces an example program, Code/Java/Func_abc. 5 6# j_syscalls.d -c 'java -XX:+ExtendedDTraceProbes Func_abc' 7Tracing... Hit Ctrl-C to end. 8Function A 9Function B 10Function C 11 PID TYPE NAME COUNT 12 311536 method Func_abc.func_a 1 13 311536 method Func_abc.func_b 1 14 311536 method Func_abc.func_c 1 15 311536 method Func_abc.main 1 16 311536 method java/io/BufferedInputStream.<clinit> 1 17 311536 method java/io/BufferedReader.<clinit> 1 18 311536 method java/io/BufferedReader.close 1 19 311536 method java/io/BufferedWriter.<clinit> 1 20 311536 method java/io/Console$1$1.<init> 1 21 311536 method java/io/Console$1$1.run 1 22 311536 method java/io/Console$1.<init> 1 23 311536 method java/io/Console$1.consoleRestoreHook 1 24 311536 method java/io/Console.<clinit> 1 25 311536 method java/io/Console.access$600 1 26 311536 method java/io/DataInputStream.<init> 1 27 311536 method java/io/DataInputStream.readFully 1 28 311536 method java/io/DeleteOnExitHook.<clinit> 1 29 311536 method java/io/DeleteOnExitHook.<init> 1 30 311536 method java/io/DeleteOnExitHook.hook 1 31 311536 method java/io/DeleteOnExitHook.run 1 32[... 900 lines truncated ...] 33 311536 method java/io/ExpiringCache.get 18 34 311536 method java/lang/Class.desiredAssertionStatus 18 35 311536 method java/lang/Class.desiredAssertionStatus0 18 36 311536 method java/lang/ClassLoader.findLoadedClass 18 37 311536 method java/lang/ClassLoader.findLoadedClass0 18 38 311536 method java/io/BufferedReader.ensureOpen 19 39 311536 method java/lang/System.currentTimeMillis 19 40 311536 method java/nio/Buffer.limit 19 41 311536 method java/util/Locale.<init> 19 42 311536 method java/util/Locale.createSingleton 19 43 311536 method java/util/concurrent/ConcurrentHashMap$Segment.put 19 44 311536 method java/util/concurrent/ConcurrentHashMap.put 19 45 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState 19 46 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.release 19 47 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.setState 19 48 311536 method java/util/concurrent/locks/ReentrantLock$NonfairSync.lock 19 49 311536 method java/util/concurrent/locks/ReentrantLock$Sync.tryRelease 19 50 311536 method java/util/concurrent/locks/ReentrantLock.lock 19 51 311536 method java/util/concurrent/locks/ReentrantLock.unlock 19 52 311536 method java/io/ObjectStreamField.<init> 20 53 311536 method java/nio/ByteBuffer.array 20 54 311536 method java/util/AbstractList.<init> 20 55 311536 method java/util/BitSet.get 20 56 311536 method java/util/concurrent/ConcurrentHashMap.hash 20 57 311536 method java/util/concurrent/ConcurrentHashMap.segmentFor 20 58 311536 method sun/misc/VM.isBooted 20 59 311536 syscall memcntl 20 60 311536 method java/io/File.getName 21 61 311536 method java/io/UnixFileSystem.getBooleanAttributes 21 62 311536 method java/io/UnixFileSystem.getBooleanAttributes0 21 63 311536 method java/lang/StringBuffer.append 21 64 311536 method java/nio/charset/Charset.atBugLevel 21 65 311536 method java/util/concurrent/ConcurrentHashMap$HashEntry.newArray 22 66 311536 method sun/misc/Unsafe.compareAndSwapInt 22 67 311536 method java/util/HashMap.<init> 23 68 311536 method java/util/concurrent/ConcurrentHashMap$HashEntry.<init> 23 69 311536 syscall stat64 23 70 311536 method java/nio/charset/CoderResult.isUnderflow 24 71 311536 method java/util/AbstractMap.<init> 24 72 311536 method java/util/Vector.elementAt 24 73 311536 syscall munmap 24 74 311536 method java/lang/Class.getClassLoader 25 75 311536 syscall lwp_sigmask 25 76 311536 syscall sigaction 25 77 311536 method java/util/AbstractCollection.<init> 26 78 311536 method java/util/ArrayList.add 26 79 311536 method java/util/ArrayList.ensureCapacity 26 80 311536 method java/lang/ClassLoader.loadClass 27 81 311536 method java/net/URL.<init> 27 82 311536 method java/lang/ClassLoader.check 28 83 311536 method java/lang/ClassLoader.checkName 28 84 311536 method java/lang/ref/Reference.<init> 28 85 311536 method java/lang/String.endsWith 29 86 311536 method sun/misc/VM.allowArraySyntax 29 87 311536 method java/io/ExpiringCache.entryFor 30 88 311536 method java/io/UnixFileSystem.resolve 30 89 311536 method java/util/HashMap$Entry.<init> 30 90 311536 method java/util/LinkedHashMap.get 30 91 311536 syscall priocntlsys 30 92 311536 method java/util/HashMap.put 33 93 311536 method java/util/Vector.<init> 33 94 311536 method java/io/UnixFileSystem.normalize 34 95 311536 method java/lang/Class.getClassLoader0 34 96 311536 method java/lang/String.toLowerCase 34 97 311536 method sun/security/action/GetPropertyAction.run 34 98 311536 method java/nio/CharBuffer.arrayOffset 36 99 311536 method java/util/HashMap.getEntry 36 100 311536 method java/io/File.<init> 37 101 311536 method java/io/UnixFileSystem.prefixLength 37 102 311536 method java/io/BufferedReader.readLine 38 103 311536 method java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread 38 104 311536 syscall resolvepath 38 105 311536 method java/lang/CharacterDataLatin1.toLowerCase 41 106 311536 method java/lang/CharacterDataLatin1.getProperties 43 107 311536 method java/security/AccessController.doPrivileged 43 108 311536 method java/util/Vector.size 43 109 311536 method java/nio/Buffer.position 44 110 311536 method java/nio/ByteBuffer.arrayOffset 44 111 311536 method java/lang/System.getProperty 48 112 311536 method java/util/Properties.getProperty 50 113 311536 method java/util/BitSet.expandTo 51 114 311536 method java/util/BitSet.set 51 115 311536 syscall pollsys 55 116 311536 method java/lang/System.checkKey 56 117 311536 method java/lang/Thread.currentThread 57 118 311536 method java/util/Hashtable$Entry.<init> 57 119 311536 method java/util/Hashtable.get 59 120 311536 method java/util/Hashtable.put 63 121 311536 method java/util/BitSet.checkInvariants 71 122 311536 method java/util/BitSet.wordIndex 72 123 311536 method java/lang/StringBuilder.<init> 73 124 311536 method java/lang/StringBuilder.toString 73 125 311536 method java/lang/AbstractStringBuilder.expandCapacity 81 126 311536 method java/util/HashMap.hash 81 127 311536 method java/util/HashMap.indexFor 81 128 311536 method java/lang/AbstractStringBuilder.<init> 82 129 311536 method java/lang/Character.toLowerCase 82 130 311536 method java/lang/String.startsWith 83 131 311536 method java/util/Arrays.copyOf 87 132 311536 method java/lang/String.lastIndexOf 90 133 311536 method java/lang/String.substring 94 134 311536 syscall brk 102 135 311536 syscall ioctl 103 136 311536 method java/util/Arrays.copyOfRange 107 137 311536 syscall mmap 127 138 311536 syscall open 129 139 311536 syscall close 133 140 311536 method java/lang/String.getChars 156 141 311536 method java/lang/System.getSecurityManager 174 142 311536 method java/lang/String.<init> 175 143 311536 syscall xstat 188 144 311536 method java/lang/String.equals 202 145 311536 method java/lang/Math.min 208 146 311536 method java/lang/String.hashCode 213 147 311536 syscall lwp_exit 291 148 311536 method java/lang/String.indexOf 302 149 311536 method java/lang/System.arraycopy 360 150 311536 method java/lang/StringBuilder.append 545 151 311536 method java/lang/AbstractStringBuilder.append 561 152 311536 syscall llseek 664 153 311536 syscall read 668 154 311536 method java/lang/Object.<init> 823 155 311536 method java/lang/String.charAt 1987 156 157While tracing there were numerous system calls made, including 668 reads()'s, 158and 664 llseek()'s. Many Java methods were also called, with 1987 159java/lang/String.charAt being the most of a particular kind. 160 161This script can provide an insight to how an application is interacting 162with the system, by providing both application method calls and 163system calls in the same output. 164 165 166