General
About
Installation
Licence
Changelog
Screenshot
Performance
Download
Current version: 0.18
jmp.tar.gz
Contacts
Robert Olofsson
d94-rol@nada.kth.se
|
|
Performance
Depending on how you run jmp it takes between 2 and 20 times as long
for the java program to complete. JVMPI is quite slow, enabling all
events that jmp uses makes the program take up to 10 times as long.
It seems that jdk/1.4 is much slower on jvmpi than jdk/1.3, some more
testing will have to be done. If possible try to use the IBM jdk since
it is much faster than the jdk from SUN.
The standard test case for jmp is running the RabbIT proxy on localhost. And
then time a wget for 182 standard url (apache/mod_perl/mod_ssl
documentation) from the local webserver, like this:
robo@orc:~/src/RabbIT2 > java -Xrunjmp rabbit.proxy.Proxy &
robo@orc:~/slask/hubba > export http_proxy=http://orc:9666/
robo@orc:~/slask/hubba > time wget -o ../log -i ../localurls
real 0m17.880s
user 0m0.110s
sys 0m0.110s
Timing table for this test under jmp/0.14 and
RabbIT/2.0.16. Test machine is an AMD athlon 1 GHz. 512 MB
RAM. Running a partially upgraded SuSE Linux/7.1
| | IBM 1.3.0 | SUN 1.3.1 | SUN 1.4.0 |
| Not using a proxy | - | 0.254 | 0.254 | 0.254 |
| Without JMP | java rabbit.proxy.Proxy | 4.131 | 4.377 | 5.56 |
| JMP tracing objects | java -Xrunjmp:nomethods,nogui
rabbit.proxy.Proxy | 8.793 | 13.158 | 16.249 |
| Hacked JMP to time JVMPI overhead. Method tracing, immediate return.
| java -Xrunjmp:noobjects,nogui
rabbit.proxy.Proxy | 4.869 | 22.25 | 51.97 |
| JMP tracing methods | java -Xrunjmp:noobjects,nogui
rabbit.proxy.Proxy | 9.092 | 34.764 | 80.145 |
| JMP tracing objects and methods, not showing gui | java
-Xrunjmp:nogui rabbit.proxy.Proxy | 15.058 | 39.604 | 88.951 |
| JMP tracing objects and methods showing gui | java
-Xrunjmp rabbit.proxy.Proxy | 17.880 | 42.112 | 95.422 |
The test performes a number of operations:
| IBM 1.3.0 | SUN 1.3.1 | SUN 1.4.0 |
| c_class_load | 430 | 435 | 709 |
| c_class_unload | 0 | 0 | 85 |
| c_object_alloc | 780 250 | 785 817 | 856 540 |
| c_object_move | 0 | 159 410 | 150 911 |
| c_object_free | 703 100 | 756 876 | 819 390 |
| c_thread_start | 61 | 48 | 52 |
| c_thread_end | 46 | 31 | 32 |
| c_method_entry | 3 358 998 | 6 187 726 | 13 267 765 |
| c_method_exit | 3 358 958 | 6 187 691 | 13 267 706 |
SUN 1.4.0 calls many more methods, that is one of the reasons that it is so much slower to profile.
|