If MP is already opened and no plugin is started what can you do with empty MP?Why not let Mediaportal instantly load the home as a single .dll -> Display the menu -> Load all other .dlls in background!
If MP is already opened and no plugin is started what can you do with empty MP?Why not let Mediaportal instantly load the home as a single .dll -> Display the menu -> Load all other .dlls in background!
Let me clear up few things:
1. Plugin loading: This thread is about making MP default plugins to single DLLs. This means that you can really get rid of the default plugins you don't need or use and the performance impact is clear for MP startup: fewer DLLs loaded will result faster startup.
2. Plugin initializing: Whole other thing is how plugin developers tend to initialize their plugins. Basically everything that goes to plugin Init() method will slow down MP startup. If the developer does not understand this, then the plugin probably will result more delay to MP startup.
3. Other stuff: There might be a lot of other optimization that can be done that has nothing to do with plugin loading & initializing.
/Morten
- Great job - that will have some effect to startup time
- I do not know the technical side of the plugin initializing in Mepo - but do MePo actually have a feature to load a plugin in background - because then is does not seem to be used by developers - a basic skin+menu cannot take many seconds to load in 2012.
- Would be nice to identify it more specifically.......I still believe Mediaportal is a bit "heavy duty" on even new hardware.
/Morten
- Great job - that will have some effect to startup time
- I do not know the technical side of the plugin initializing in Mepo - but do MePo actually have a feature to load a plugin in background - because then is does not seem to be used by developers - a basic skin+menu cannot take many seconds to load in 2012.
- Would be nice to identify it more specifically.......I still believe Mediaportal is a bit "heavy duty" on even new hardware.
2. Actually the background initialization you suggested would be very complex solution for a problem which usually can be solved on the plugin code side. I bet most of the plugins do no time-consuming processing during the initialization so the delay caused here is just milliseconds. And if they do that should be done in a separate thread.
We probably should add some performance logging (if not already done) for the plugin init calls that MP is making. That way we could pin point the slow starup that is caused by specific plugins and then we could ask the 3rd party plugin (or even MP core ) developers to fix the init code.
Load plugins from : D:\Programs\MediaPortal\Plugins\windows\WindowPlugins.dll
2012-12-06 20:00:20.901675 [Info.][MPMain(1)]: File Version : 1.2.200.0
2012-12-06 20:00:20.895674 [Info.][MPMain(1)]: LoadWindowPlugins()
2012-12-06 20:00:20.897674 [Info.][MPMain(1)]: Load plugins from : D:\Programs\MediaPortal\Plugins\windows\WindowPlugins.dll
2012-12-06 20:00:20.901675 [Info.][MPMain(1)]: File Version : 1.2.200.0
2012-12-06 20:00:20.928676 [Info.][MPMain(1)]: MusicDatabase: Opening database
2012-12-06 20:00:20.929676 [Info.][MPMain(1)]: using sqlite 3.7.11
2012-12-06 20:00:20.930676 [Info.][MPMain(1)]: MusicDatabase: Database opened
2012-12-06 20:00:20.951677 [Debug][MPMain(1)]: GUIMusicPlayingNow: Viz disabled - ShowViz False, VizName None
2012-12-06 20:00:20.955678 [Info.][MPMain(1)]: Loading references from C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\references.xml
2012-12-06 20:00:20.957678 [Info.][MPMain(1)]: original skin size:1280x720
2012-12-06 20:00:21.024682 [Debug][MPMain(1)]: Cacheing expression: #(iif(and(neq(L(102012), #currentmodule), neq(L(102002), #currentmodule), neq(L(100100), #currentmodule), neq(L(102015), #currentmodule)), #currentmodule, ' '))
2012-12-06 20:00:21.030682 [Debug][MPMain(1)]: Cacheing expression: and(neq(L(102012), #currentmodule), neq(L(102002), #currentmodule), neq(L(100100), #currentmodule), neq(L(102015), #currentmodule))
2012-12-06 20:00:21.030682 [Debug][MPMain(1)]: Cacheing expression: neq(L(102012), #currentmodule)
2012-12-06 20:00:21.030682 [Debug][MPMain(1)]: Cacheing expression: L(102012)
2012-12-06 20:00:21.030682 [Debug][MPMain(1)]: Cacheing expression: 102012
2012-12-06 20:00:21.031682 [Debug][MPMain(1)]: Cacheing expression: #currentmodule
2012-12-06 20:00:21.031682 [Debug][MPMain(1)]: Cacheing expression: neq(L(102002), #currentmodule)
2012-12-06 20:00:21.031682 [Debug][MPMain(1)]: Cacheing expression: L(102002)
2012-12-06 20:00:21.032682 [Debug][MPMain(1)]: Cacheing expression: 102002
2012-12-06 20:00:21.032682 [Debug][MPMain(1)]: Cacheing expression: neq(L(100100), #currentmodule)
2012-12-06 20:00:21.032682 [Debug][MPMain(1)]: Cacheing expression: L(100100)
2012-12-06 20:00:21.032682 [Debug][MPMain(1)]: Cacheing expression: 100100
2012-12-06 20:00:21.033682 [Debug][MPMain(1)]: Cacheing expression: neq(L(102015), #currentmodule)
2012-12-06 20:00:21.033682 [Debug][MPMain(1)]: Cacheing expression: L(102015)
2012-12-06 20:00:21.033682 [Debug][MPMain(1)]: Cacheing expression: 102015
2012-12-06 20:00:21.033682 [Debug][MPMain(1)]: Cacheing expression: ' '
2012-12-06 20:00:21.040683 [Debug][MPMain(1)]: Cacheing expression: #(L(180))
2012-12-06 20:00:21.040683 [Debug][MPMain(1)]: Cacheing expression: 180
2012-12-06 20:00:21.044683 [Debug][MPMain(1)]: Cacheing expression: #(L(171))
2012-12-06 20:00:21.044683 [Debug][MPMain(1)]: Cacheing expression: 171
2012-12-06 20:00:21.045683 [Debug][MPMain(1)]: Cacheing expression: #(L(179))
2012-12-06 20:00:21.045683 [Debug][MPMain(1)]: Cacheing expression: 179
2012-12-06 20:00:21.045683 [Debug][MPMain(1)]: Cacheing expression: #(L(170))
2012-12-06 20:00:21.045683 [Debug][MPMain(1)]: Cacheing expression: 170
2012-12-06 20:00:21.046683 [Debug][MPMain(1)]: Cacheing expression: #(L(435))
2012-12-06 20:00:21.046683 [Debug][MPMain(1)]: Cacheing expression: 435
2012-12-06 20:00:21.046683 [Debug][MPMain(1)]: Cacheing expression: #(L(436))
2012-12-06 20:00:21.047683 [Debug][MPMain(1)]: Cacheing expression: 436
2012-12-06 20:00:21.065684 [Warn.][MPMain(1)]: GUIWindow:OnWindowLoaded: 'C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\MyMusicPlayingNow.xml' is missing control id 999 (window property: VUMeterLeft)
2012-12-06 20:00:21.065684 [Warn.][MPMain(1)]: GUIWindow:OnWindowLoaded: 'C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\MyMusicPlayingNow.xml' is missing control id 998 (window property: VUMeterRight)
2012-12-06 20:00:21.068684 [Info.][MPMain(1)]: GUIMusicPlaylist: Loading default playlist default.m3u
2012-12-06 20:00:21.081685 [Warn.][MPMain(1)]: GUIWindow:OnWindowLoaded: 'C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\musicOverlay.xml' is missing control id 0 (window property: _videoRectangle)
2012-12-06 20:00:21.082685 [Warn.][MPMain(1)]: GUIWindow:OnWindowLoaded: 'C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\musicOverlay.xml' is missing control id 6 (window property: _labelBigPlayTime)
2012-12-06 20:00:21.082685 [Warn.][MPMain(1)]: GUIWindow:OnWindowLoaded: 'C:\ProgramData\Team MediaPortal\MediaPortal\Skin\DefaultWide\musicOverlay.xml' is missing control id 9 (window property: _videoWindow)
2012-12-06 20:00:21.095686 [Info.][MPMain(1)]: opening video database
2012-12-06 20:00:21.105686 [Info.][MPMain(1)]: Cleaned up 0 rows for unwanted paths.
2012-12-06 20:00:21.105686 [Info.][MPMain(1)]: Found 0 files without path link. Cleaning files related tables.
2012-12-06 20:00:21.106686 [Info.][MPMain(1)]: Cleaned up 0 rows for tables without file link.
2012-12-06 20:00:21.106686 [Info.][MPMain(1)]: Clean up files (no path link): 0 rows affected.
2012-12-06 20:00:21.106686 [Info.][MPMain(1)]: Clean up path (no file link): 0 rows affected.
2012-12-06 20:00:21.107686 [Info.][MPMain(1)]: Clean up movie (no path link): 0 rows affected.
2012-12-06 20:00:21.107686 [Info.][MPMain(1)]: Clean up actorinfo (no actorId link to actors): 0 rows affected.
2012-12-06 20:00:21.107686 [Info.][MPMain(1)]: Clean up actorlinkmovie (no actorId link to actors): 0 rows affected.
2012-12-06 20:00:21.107686 [Info.][MPMain(1)]: Clean up actorlinkmovie (no movie link): 0 rows affected.
2012-12-06 20:00:21.108686 [Info.][MPMain(1)]: Clean up actorinfomovies (no actorId link to actors): 0 rows affected.
2012-12-06 20:00:21.108686 [Info.][MPMain(1)]: Clean up movieinfo (no movie link): 0 rows affected.
2012-12-06 20:00:21.108686 [Info.][MPMain(1)]: Clean up genrelinkmovie (no movie link): 0 rows affected.
2012-12-06 20:00:21.108686 [Info.][MPMain(1)]: Compacting videodatabase: 401408 bytes
2012-12-06 20:00:21.114687 [Info.][MPMain(1)]: Compacting finished successfully. New file lenght: 401408 bytes
2012-12-06 20:00:21.118687 [Info.][MPMain(1)]: video database opened