mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
54ffe8caca
Profiling shows that we're spending a lot of time on startup inside android.media.MediaCodecList.getCodecCount when GfxInfo::GetFeatureStatus calls over to Java to determine whether hardware accelerated video encoding is supported. Looking at the Java stacks in the profile, Android is spending most of our time creating a list of codecs. It doesn't look like there's a faster way to query for hardware accelerated video support. So to speed this up we can cache the value in the user's profile. We also store the OS version, which we can use to detect when the OS is updated so we can invalidate the cache then. Presumably an OS update is the only way a device can have its hardware acceleration support status change. With this change, the time we take figuring out the HW encode/decode status goes from ~100ms on a cold run to ~0.01ms on a cache hit on my HD8 tablet. Differential Revision: https://phabricator.services.mozilla.com/D31380 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
bindings | ||
fennec | ||
jni | ||
AndroidAlerts.cpp | ||
AndroidAlerts.h | ||
AndroidBridge.cpp | ||
AndroidBridge.h | ||
AndroidBridgeUtilities.h | ||
AndroidColors.h | ||
AndroidCompositorWidget.cpp | ||
AndroidCompositorWidget.h | ||
AndroidContentController.cpp | ||
AndroidContentController.h | ||
AndroidDirectTexture.h | ||
AndroidGraphicBuffer.h | ||
AndroidUiThread.cpp | ||
AndroidUiThread.h | ||
ANRReporter.cpp | ||
ANRReporter.h | ||
components.conf | ||
EventDispatcher.cpp | ||
EventDispatcher.h | ||
GeckoBatteryManager.h | ||
GeckoEditableSupport.cpp | ||
GeckoEditableSupport.h | ||
GeckoNetworkManager.h | ||
GeckoProcessManager.h | ||
GeckoScreenOrientation.h | ||
GeckoSystemStateListener.h | ||
GeckoVRManager.h | ||
GfxInfo.cpp | ||
GfxInfo.h | ||
moz.build | ||
nsAndroidProtocolHandler.cpp | ||
nsAndroidProtocolHandler.h | ||
nsAppShell.cpp | ||
nsAppShell.h | ||
nsClipboard.cpp | ||
nsClipboard.h | ||
nsDeviceContextAndroid.cpp | ||
nsDeviceContextAndroid.h | ||
nsIAndroidBridge.idl | ||
nsIdleServiceAndroid.cpp | ||
nsIdleServiceAndroid.h | ||
nsLookAndFeel.cpp | ||
nsLookAndFeel.h | ||
nsNativeThemeAndroid.cpp | ||
nsNativeThemeAndroid.h | ||
nsPrintSettingsServiceAndroid.cpp | ||
nsPrintSettingsServiceAndroid.h | ||
nsWidgetFactory.cpp | ||
nsWidgetFactory.h | ||
nsWindow.cpp | ||
nsWindow.h | ||
PrefsHelper.h | ||
ProcInfo.cpp | ||
ScreenHelperAndroid.cpp | ||
ScreenHelperAndroid.h | ||
Telemetry.h | ||
WebAuthnTokenManager.cpp | ||
WebExecutorSupport.cpp | ||
WebExecutorSupport.h |