Jump to content

Need testers for speed-up ideas


xnappo
 Share

Recommended Posts

Hi Guys,

 

As you know, I got a Pi a while back and have been hacking at finding a way to make it faster.

 

I have a proof of concept I would like to share that results in very fast browsing on the Pi.

 

What I have done is in the main script, made a new section that uses Window properties as placeholders for data, and then hacked the recent item thread to fill in the info.

 

Caveats:

 

Basically want to get some early feedback on whether this is worth the effort to add, and implementation thoughts.

 

To try it, replace the two files in the attached zip, then go to the last list item 'FastMovies'

 

Chris

fastmovies.zip

Link to comment
Share on other sites

@@Luke, yes a minimal dataset would make this much easier. I would still use a background loader for the other data, but it would be much cleaner.

 

I believe I would just need id and type, but it probably would be okay to include title as well.

Link to comment
Share on other sites

after the stable release i would like to look at some of the api data and see if there are opportunities to trim it. for example, if there are fields that most apps aren't using, i'll make them off by default

 

That will have the potential to break stuff.  Can you instead, define a new parameter for minimal data or something so that programs that need it can request the smaller data set?

Link to comment
Share on other sites

after the stable release i would like to look at some of the api data and see if there are opportunities to trim it. for example, if there are fields that most apps aren't using, i'll make them off by default

  • Like 1
Link to comment
Share on other sites

Hi All,

 

I am working on some ideas to speed up things for large collections/slow machines.

 

I have two methods of doing this I have been prototyping. One is easier to implement and will only get full improvements with a server change from @@Luke. The second is more difficult, but should be quite fast. Some things like sorting will be very difficult with the second, however.

 

I would like some users with large collections to give these a shot an let me know the speed-up from 'All Movies' to 'Fast Movies' and then 'Fast Movies 2'. I am out of town, and testing over the internet isn't really working well.

 

To try it out, replace the files in the attached zip in your plugin.video.xbmb3c/resources/lib folder, then into Video->Addons-MediaBrowser and go to the above nodes.

 

Thanks,

xnappo

speedtest.zip

Edited by xnappo
Link to comment
Share on other sites

500 movies or so. Doesn't matter a whole lot, just want some comparative feel so I can know whether the more straight forward method will be 'fast enough'. Don't expect this to work/have all data etc, just need to know the relative load times. Subjective is fine, but please try exiting/entering multiple times.

 

xnappo

Edited by xnappo
Link to comment
Share on other sites

Ah yeah, my library is not nearly large (barely 200 movies). For me, it's already super fast to load with the current beta. I don't think I'll be much help for this feature, but I'm sure a couple of people will volunteer. :) 

Link to comment
Share on other sites

@@xnappo, I just tested your POC with the fastdata mod...

 

Well, "Fast All Movies" --> it loads instantly, no lag at all. within a blink of the eyes the whole movielist is there :-)

 

Fast Movies 2 --> doesn't work, script error:

02:15:45 T:3240   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.TypeError'>
                                            Error Contents: The parameter "entry1" must be either a Tuple or a List.
                                            Traceback (most recent call last):
                                              File "C:\Users\Marcel\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\default.py", line 39, in <module>
                                                MainModule.MainEntryPoint()
                                              File "C:\Users\Marcel\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\resources\lib\MainModule.py", line 3371, in MainEntryPoint
                                                getContent(param_url, pluginhandle)
                                              File "C:\Users\Marcel\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\resources\lib\MainModule.py", line 1462, in getContent
                                                xbmcplugin.addDirectoryItems(pluginhandle, dirItems)
                                            TypeError: The parameter "entry1" must be either a Tuple or a List.
                                            -->End of Python script error report<--

This looks promising. As for the missing data: most was there, just some stuff like genre, year, director etc. was missing.

Plot and all of the artwork was there

Link to comment
Share on other sites

Hey xnappo, I've got 1720 movies so I'll give this a shot for you

 

However, on the latest beta add-on with your nox skin from the stable repo I am opening All Movies in 4.77 seconds (I did use the stopwatch on my phone :-) but I can't really claim more than +/- 0.5 seconds accuracy though)

 

It's a hair faster if your default view is set to "List" (though I always change that to video wall)

Link to comment
Share on other sites

Moved all the files, testing this on openelec x86_64 13.2

 

I don't usually enter the individual categories through the XBMB3C add-on, but that's where I went to test for you

 

All Movies -> 4.7s

Fast All Movies -> 2.5s

Fast All Movies 2 -> Error Script failed!: Mediabrowser

 

Movie Library -> 1720 titles

 

Also, "Fast All Movies" didn't load any posters like "All Movies" did, just the titles instead

Link to comment
Share on other sites

Thanks. I will have a better version in the bet repo tomorrow or Monday. Your result shows it is worth pursuing, especially if @@Luke adds the server feature to make the data fetch faster.

Link to comment
Share on other sites

well before we even get to that i'm making some very minor changes. i've identified about 6-8 fields that are either web client only or have very limited use. so i'm going to start with those, and i'll add a param to limit the image information that comes back. then we'll go from there.

 

also - see the ticket i just opened in your github repo. that's from a change made a few months ago. the sooner you migrate, the sooner that field can be removed from the api (and more savings).

Link to comment
Share on other sites

Thanks @@xnappo, @@Luke, et. al

 

I really like the MB3 marriage to the linux based OpenELEC for a wide variety of reasons :) Anything that helps it out is great

 

XBMB3C started out pretty rough around the edges, but it's going to be quite the gem when it's all polished up IMO. XBMC more or less has their head rooted a long way you know where as far as I'm concerned regarding things as basic as updating their scrapers to load disc art -- that already exists and is appropriately named from your media folders -- into their hacktastic version of a video database. Don't even get me started with music. Everyone knows it, but nobody really wants to work on it. Many exuberant newcomers with coding skills don't really know where to look either. As someone who has put up with XBMCs library quirks along with "run this add-on to make your library do this, and this one to do that" for a couple years, I have a lot of patience and am really rooting for you guys to pull this thing through to the level of the integrated sql library speeds

 

The biggest reason I'm still married to XBMC is the lack of any good alternatives in the linux frontend arena IMO. I have a cheap barebones G550 running the OpenELEC-PlexHT distro at my in-laws (gave them last Christmas) and I'll be upgrading them to a standard OpenELEC-XBMB3C-Retroplayer build this year (just a software mod for them) and retire Plex once and for all from my media server. My brother-in-law will really enjoy Retroplayer as well. I think retroplayer is going to be huge when it really comes to fruition. It's got to be the nicest way to play emulators that I've ever experienced. I'm also eager to see them improve the hardware acceleration for the Nexus Player so I can replace my openelec htpc with one that has the Cast receiving function built-in straight from Mountain View

 

Nothing comes close to MB3 server for management though, so thanks again for working to integrate this. As a thought, for as much work as the XBMC team has not put into improving the central server concept, they have put several years of work into sorting out the basic player/front end concepts (subtitles, refresh rate adjustment, sync playback to audio clock, sync to video clock, decode/bitstream nearly every audio format, switch audio or subtitles on the fly, all on screen controllable, remote controllable, on screen keyboard, external players, PVR backend, etc) in a multi-platform way such that you don't need to run windows or osx to enjoy a nice media center (though you can if you are so inclined). I guess my point is, it will take quite some time to replicate all of that with MBT (I think) so hitching the wagon to XBMC, at least for the time being, is imperative for users like myself

Link to comment
Share on other sites

XBMC's focus has always been on the client, and IMO rightly so. (btw I doubt that anyone is going to stop calling it XBMC for a long long time :)). The project started way back for the Xbox at which point the concept of a media server barely existed. XBMC has been the gold standard playback interface for decades now, and that takes a lot of work. 

 

The marriage of XBMC client, a dedicated OS like OpenElec, and a powerful all new backed in MB3, is almost perfect. Mostly due to the amazing rate of development of MB, and their open philosophy and tendency to do the 'right' thing.

Link to comment
Share on other sites

Thanks. I will have a better version in the bet repo tomorrow or Monday. Your result shows it is worth pursuing, especially if @@Luke adds the server feature to make the data fetch faster.

Hi @@xnappo,

 

I just went and tested this on a slightly different setup to give you some more info

 

~more background on the first one that I should have mentioned  :)  It's wired up to the same switch as my MB3 server

 

Okay, second round of testing

 

  • rMBP - OSX x64 Helix Beta 5
  • dedicated 5GHz-only AC wireless connected to Asus AC68
  • Kodi-1.0.1 repo
  • Fresh XBMC install (put Beta 5 on top of Beta 4 but deleted my old Kodi folder)
  • Titan Beta

This time I had to do a bunch of runs to get the times to stabilize (like 15 enter/browse around/back out for All Movies and Fast All Movies)

 

On the other test (Intel OpenELEC Gotham x64 wired) I stopped entering and backing out after 7 times, because I got the same numbers ~4.7/~2.5 four times in a row

 

This time I had wildly different numbers for the first 10-12 times before I got three in a row that matched (likely because it was a fresh install and not yet cached, while previous test was on my daily driver)

 

Anyway, without further adoue

 

  • Same Movie Library -> 1721 titles (added one tonight  ;) )
  • All Movies -> 7.5s
  • Fast All Movies -> 6.0s
  • Fast All Movies 2 -> Error!:Script Failed Mediabrowser

 

However, it may be worth noting that in Titan the "Fast All Movies" section includes posters when it loads. I can load up Gotham on the rMBP and test this out wirelessly as well using your Nox skin (which didn't load any posters in "Fast All Movies")

 

I'm not sure if that's the goal, but to put your mind further at ease my wireless was only serving the rMBP at the time of the test and I received roughly the same numbers 3x

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...