2012-09-22, 10:33
Is "application/json-rpc" even a valid MIME type? I've never heard of it (which obviously doesn't mean that it doesn't exist).
(2012-09-22, 03:36)N3MIS15 Wrote: you could simply change the lib.
Change line 120 in jsonrpc.py to:
Code:connection.putheader("Content-Type", "application/json")
While changing the lib is not the best solution.. If you include the lib in your app it should be safe. This is how we got around it in Maraschino.
I also wrote my own class to behave exactly like jsonrpclib if you're interested, it does not support batch requests tho. http://forum.xbmc.org/showthread.php?tid...pid1138156
(2012-09-22, 12:49)Montellese Wrote: To improve the second point mentioned by jmarshall I've submitted PR1462. On my system this brings the response time for retrieving a list of 1500 songs with thumbnail and fanart down from ~14 seconds to 3.5 seconds so quite a bit faster. It's still nowhere near the 1 second it takes to retrieve the songs without artwork but already a lot closer.
(2012-09-22, 11:17)jmarshall Wrote: 1. The separate queries for art.
[...]
The first can't really be - after all, art is a 1:many map, so you can't retrieve it all in one go.
(2012-09-22, 11:17)jmarshall Wrote: 2. The open/close of the db for each of those queries.
(2012-09-24, 16:40)Koying Wrote:Not really multiple thumbs but multiple pieces of artwork. Currently we only have thumbnail and fanart which is why they are directly supported in the JSON-RPC calls but in the future xbmc will support clearart, logos, and all that stuff and we don't plan to add a single field for every one of those into the database view so while this approach might work right now it will utterly fail in the future.(2012-09-22, 11:17)jmarshall Wrote: 1. The separate queries for art.
[...]
The first can't really be - after all, art is a 1:many map, so you can't retrieve it all in one go.
But can there be multiple "thumb"'s for 1 item?
Because, mainly, the performance issue is because the remotes want to retrieve the thumb of a list of items.
If there is only 1 thumb (which seems to be the case, unless mistaken), we add it to the views and performance is great in this case.
(2012-09-24, 16:40)Koying Wrote: In my remote mysql case, it adds 100ms for a ~50 items query vs. adding nearly 1sec PER ITEM.Using mysql certainly doesn't help when it comes to better performance.
(2012-09-24, 16:40)Koying Wrote:As you can see in the numbers from my system it still makes quite a bit of a difference so it should certainly go in.(2012-09-22, 11:17)jmarshall Wrote: 2. The open/close of the db for each of those queries.
I already tried something which avoided the open/close.
Although the performances increased, it still wasn't usable, whether with Yatse or the official remote's fork which implement JSON.
(2012-09-24, 16:40)Koying Wrote: BTW, asking for "resume" also fetches from the database for each item, while the info is available from the views. This also degrades performance....
I'm working on a patch.