1 The following are examples of j_syscalls.d.
3 This is a simple script to count executed Java methods and system calls.
4 Here it traces an example program, Code/Java/Func_abc.
6 # j_syscalls.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
7 Tracing... Hit Ctrl-C to end.
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
157 While tracing there were numerous system calls made, including 668 reads()'s,
158 and 664 llseek()'s. Many Java methods were also called, with 1987
159 java/lang/String.charAt being the most of a particular kind.
161 This script can provide an insight to how an application is interacting
162 with the system, by providing both application method calls and
163 system calls in the same output.