Philip Meyer;559661 Wrote: > >But you will find that if you remove CustomBrowse and TrackStat all of > >a sudden it will only use half of that. > I know - but that's not due to a few options, or a bit of code to > support the options. > > I actually think it would be better to split CustomBrowse into a > smaller plugin for core stuff, and one or more extra plugins that can > be installed if required. eg. for custom menu configuration through > templates, another one for mixers, maybe one for headers/footers (which > I'm sure is not customised by many people, as this is advanced/scary!). > > There are actually only ~12 options for the CustomBrowse plugin > settings. Some of these could potentially be removed; eg. hard-code > the location of various directories. Menu name and position could be > hard-coded; SBS core functionality (or another plugin) should allow all > menus to be configured. I doubt there's much code/resources being > consumed behind any of these options, and 12 is not a large scary > number. > > Other configuration stuff is for managing menus within Custom Browse. > Maybe this consumes a lot of memory, and is not often used. i.e. once > set up, a user may use the menus, but doesn't need to HTML > configuration screens very often. > I'm talking about the menu configuration options, not the 12 generic Custom Browse options.
Regarding memory and startup performance, the current approach means that all the available menu configuration files (*.xml/*.template files) needs to be parsed and kept in memory/cache. I think I currently have all the visible files in memory which I suspect uses a lot of memory. Also, the code to handle all these variants probably also requires a lot of memory. To get decent startup performance I do the parsing once after a menu has been changed and cache the parsed result, without that the startup performance would be totally unacceptable. It would probably be possible to cache the configuration to disk instead of having it in memory to decrease the memory usage a little bit. I suspect it's the configuration data that causes the memory usage but there is also quite a bit of perl code in the Custom Browse plugin so the code itself could also be a problem. I believe the extensive configuration possibilities was the right way to go when I implemented them, because at that time neither I nor anyone else knew what we wanted. Today, when people has used Custom Browse a bit, it should be possible to collect the most used features and make something simpler that solves those problems. Anyway, I think I'll need to think about this a bit more and also get some more information from Logitech regarding where they are heading before doing any major work. A psychological problem is also that it's fun doing new stuff but it's not that much fun maintaining old stuff, especially if you barley use it yourself. I had some hope that someone from Logitech would have picked up the needs and implemented something in the core product to support flexible browsing at this time. As with many of my plugins, the intention in the beginning was really just to show a concept/need, some of them has grown quite a bit after that because none at Logitech picked up or realized the need or didn't prioritize to make something in the standard product that solved the problem. Logitech will of course never implement something that contains the number of configuration options that Custom Browse have, but I strongly believe that most Custom Browse users would be happy with a lot less configuration options, it's just a matter of figuring out which ones that needs to be kept. The problem is just that it's hard to do this a good way as a plugin, some limitations in the plugin API makes it impossible to make it fit seamless with the other browse menus without having to revert to hacking around the API as I've done in some places in the Custom Browse code. It's easy to add extra menus, but it gets hard if you like to get the same behavior as the standard ones or even more if you like to replace a standard menu. Sorry if this got a bit off topic... -- erland Erland Isaksson 'My homepage' (http://erland.isaksson.info) (Install my plugins through Extension Downloader) (Developer of 'TrackStat, SQLPlayList, DynamicPlayList, Custom Browse, Custom Scan, Custom Skip, Multi Library, Title Switcher and Database Query plugins' (http://wiki.erland.isaksson.info/index.php/Category:SlimServer)) ------------------------------------------------------------------------ erland's Profile: http://forums.slimdevices.com/member.php?userid=3124 View this thread: http://forums.slimdevices.com/showthread.php?t=76488 _______________________________________________ plugins mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/plugins
