ObjectMonitor::DeferredInitialize is called lazily/on demand when the first object monitor instance is used.
BeforeJDK-8210848 it contained code to process command line arguments etc., but after JDK-8210848 the only part that remains is setting up some spin related settings. The only dependency that code has is that os::is_MP() returns the actual number of processors, which is done in os::init().
The ObjectMonitor initialization can and should be done explicitly instead.
Before
The ObjectMonitor initialization can and should be done explicitly instead.