2015-10-06, 03:55
I'm new to Kodi and I was surprised to see how many singletons are used.
So as an experiment, I added printfs to show the first call to each singleton's GetInstance() method and to print out it's size.
I think it's interesting as an introduction to how kodi gets initialized. Platform is Linux, fetch was from Friday (58142ec7b), all I did was started kodi.bin and then shutdown:
before main() gets called:
SINGLETON GlobalsSingleton CAdvancedSettings 1760
SINGLETON GlobalsSingleton CLog 80
SINGLETON GlobalsSingleton CCharsetConverter 8
SINGLETON GlobalsSingleton CLangInfo 352
SINGLETON GlobalsSingleton CApplication 1392
SINGLETON Clibcdio 112
SINGLETON GlobalsSingleton CGraphicContext 840
SINGLETON GlobalsSingleton GUIFontManager 176
SINGLETON GlobalsSingleton CWeather 408
SINGLETON GlobalsSingleton CWinSystemX11GL 448
SINGLETON GlobalsSingleton CGUIWindowManager 368
SINGLETON GlobalsSingleton CFreeTypeLibrary 16
SINGLETON GlobalsSingleton CFDEventMonitor 848
SINGLETON GlobalsSingleton CSectionLoader 80
SINGLETON CAnnouncementManager 80
main: START
main: about to call g_advancedSettings.Initialize()
main: about to call appParamParser.Parse()
SINGLETON CApplicationMessenger 256
main: about to call XBMC_Run()
XBMC_Run: START
XBMC_Run: about to call g_application.Create()
SINGLETON CActiveAEDSP 1304
SINGLETON CDisplaySettings 224
SINGLETON CWakeOnAccess 112
SINGLETON CAddonMgr 304
SINGLETON CProfilesManager 104
SINGLETON CSettings 80
SINGLETON CMediaSourceSettings 160
SINGLETON CPlayerCoreFactory 104
SINGLETON CUPnPSettings 88
SINGLETON CRssManager 144
SINGLETON CMediaSettings 1064
SINGLETON CSkinSettings 104
SINGLETON CViewStateSettings 120
SINGLETON CEventLog (multiple) 128
SINGLETON CSeekHandler 264
SINGLETON CSteroscopicsManager 24
SINGLETON CInputManager 1416
SINGLETON CNetworkServices 72
SINGLETON CPVRManager 1208
SINGLETON CPVRActionListener 8
SINGLETON CDatabaseManager 104
SINGLETON CPeripherals 216
SINGLETON CRepositoryUpdater 1120
SINGLETON CScriptInvocationManager 208
SINGLETON CKeyboardLayoutManager 56
XBMC_Run: about to call g_application.CreateGUI()
SINGLETON CSplash 16
SINGLETON CXbtManager 48
SINGLETON CButtonTranslator 416
SINGLETON CBuiltins 56
SINGLETON CTextureCache 656
SINGLETON CPlayerController 24
XBMC_Run: about to call g_application.Run()
SINGLETON CJobManager 624
SINGLETON CZeroconf 72
SINGLETON CUPnP 64
SINGLETON CEventServer 792
SINGLETON CVideoLibraryQueue 280
SINGLETON CEpgContainer 1304
XBMC_Run: returned from g_application.Run()
So as an experiment, I added printfs to show the first call to each singleton's GetInstance() method and to print out it's size.
I think it's interesting as an introduction to how kodi gets initialized. Platform is Linux, fetch was from Friday (58142ec7b), all I did was started kodi.bin and then shutdown:
before main() gets called:
SINGLETON GlobalsSingleton CAdvancedSettings 1760
SINGLETON GlobalsSingleton CLog 80
SINGLETON GlobalsSingleton CCharsetConverter 8
SINGLETON GlobalsSingleton CLangInfo 352
SINGLETON GlobalsSingleton CApplication 1392
SINGLETON Clibcdio 112
SINGLETON GlobalsSingleton CGraphicContext 840
SINGLETON GlobalsSingleton GUIFontManager 176
SINGLETON GlobalsSingleton CWeather 408
SINGLETON GlobalsSingleton CWinSystemX11GL 448
SINGLETON GlobalsSingleton CGUIWindowManager 368
SINGLETON GlobalsSingleton CFreeTypeLibrary 16
SINGLETON GlobalsSingleton CFDEventMonitor 848
SINGLETON GlobalsSingleton CSectionLoader 80
SINGLETON CAnnouncementManager 80
main: START
main: about to call g_advancedSettings.Initialize()
main: about to call appParamParser.Parse()
SINGLETON CApplicationMessenger 256
main: about to call XBMC_Run()
XBMC_Run: START
XBMC_Run: about to call g_application.Create()
SINGLETON CActiveAEDSP 1304
SINGLETON CDisplaySettings 224
SINGLETON CWakeOnAccess 112
SINGLETON CAddonMgr 304
SINGLETON CProfilesManager 104
SINGLETON CSettings 80
SINGLETON CMediaSourceSettings 160
SINGLETON CPlayerCoreFactory 104
SINGLETON CUPnPSettings 88
SINGLETON CRssManager 144
SINGLETON CMediaSettings 1064
SINGLETON CSkinSettings 104
SINGLETON CViewStateSettings 120
SINGLETON CEventLog (multiple) 128
SINGLETON CSeekHandler 264
SINGLETON CSteroscopicsManager 24
SINGLETON CInputManager 1416
SINGLETON CNetworkServices 72
SINGLETON CPVRManager 1208
SINGLETON CPVRActionListener 8
SINGLETON CDatabaseManager 104
SINGLETON CPeripherals 216
SINGLETON CRepositoryUpdater 1120
SINGLETON CScriptInvocationManager 208
SINGLETON CKeyboardLayoutManager 56
XBMC_Run: about to call g_application.CreateGUI()
SINGLETON CSplash 16
SINGLETON CXbtManager 48
SINGLETON CButtonTranslator 416
SINGLETON CBuiltins 56
SINGLETON CTextureCache 656
SINGLETON CPlayerController 24
XBMC_Run: about to call g_application.Run()
SINGLETON CJobManager 624
SINGLETON CZeroconf 72
SINGLETON CUPnP 64
SINGLETON CEventServer 792
SINGLETON CVideoLibraryQueue 280
SINGLETON CEpgContainer 1304
XBMC_Run: returned from g_application.Run()