Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
813 views
in Technique[技术] by (71.8m points)

jvm - what is shared objects file?

When run the jvm in verbose mode it shows files are loading from shared object file as shown below

[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects file]
[Loaded java.lang.Comparable from shared objects file]
[Loaded java.lang.CharSequence from shared objects file]

What is this shared objects files? I thought these are files in rt.jar and it's getting loaded from there; but rt.jar is getting opened in long way down

[Loaded java.security.BasicPermissionCollection from shared objects file]
[Opened C:Program FilesJavajre6lib
t.jar]
[Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:Program FilesJavajre6lib
t.jar]
[Loaded java.security.ProtectionDomain$2 from C:Program FilesJavajre6lib
t.jar]

any way after extracting the rt.jar i found it has all the classes which were loaded from shared object file.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

This is Class Data Sharing. When running the Sun/Oracle Client HotSpot and sharing enable (either -Xshare:auto which is the default, or -Xshare:on), the classes.jsa file is memory mapped. This file contains a number of classes (listed in the classlist file) in internal representation suitable for the exact configuration of the machine running it. The idea is that the classes can be loaded quickly, getting the the JVM up faster. Soon enough a class not covered will be hit, and rt.jar will need to be opened and classes loaded conventionally as required.

Reference:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...