frankyin-factual commented on pull request #29069: URL: https://github.com/apache/spark/pull/29069#issuecomment-656954852
that's the code for `StdInstantiatorStrategy`: ``` public <T> ObjectInstantiator<T> newInstantiatorOf(Class<T> type) { if(PlatformDescription.isThisJVM(HOTSPOT) || PlatformDescription.isThisJVM(OPENJDK)) { // Java 7 GAE was under a security manager so we use a degraded system if(PlatformDescription.isGoogleAppEngine() && PlatformDescription.SPECIFICATION_VERSION.equals("1.7")) { if(Serializable.class.isAssignableFrom(type)) { return new ObjectInputStreamInstantiator<T>(type); } return new AccessibleInstantiator<T>(type); } // The UnsafeFactoryInstantiator would also work. But according to benchmarks, it is 2.5 // times slower. So I prefer to use this one return new SunReflectionFactoryInstantiator<T>(type); } else if(PlatformDescription.isThisJVM(DALVIK)) { if(PlatformDescription.isAndroidOpenJDK()) { // Starting at Android N which is based on OpenJDK return new UnsafeFactoryInstantiator<T>(type); } if(ANDROID_VERSION <= 10) { // Android 2.3 Gingerbread and lower return new Android10Instantiator<T>(type); } if(ANDROID_VERSION <= 17) { // Android 3.0 Honeycomb to 4.2 Jelly Bean return new Android17Instantiator<T>(type); } // Android 4.3 until Android N return new Android18Instantiator<T>(type); } else if(PlatformDescription.isThisJVM(JROCKIT)) { // JRockit is compliant with HotSpot return new SunReflectionFactoryInstantiator<T>(type); } else if(PlatformDescription.isThisJVM(GNU)) { return new GCJInstantiator<T>(type); } else if(PlatformDescription.isThisJVM(PERC)) { return new PercInstantiator<T>(type); } // Fallback instantiator, should work with most modern JVM return new UnsafeFactoryInstantiator<T>(type); } ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org