Opened 9 years ago

Closed 9 years ago

#217 closed Defect (invalid)

Large database slowing down UI

Reported by: snown Owned by:
Priority: normal Milestone:
Component: Other Version: 1.0b6.3
Keywords: Cc:


I have a collection of videos about 4,500 large. This size seems to be slowing down the reaction time of the user interface.

I've noticed that whenever I am done watching a video, or if I've just changed something about that video (as in marked it watched, or as a favorite) that the User interface seems to stop all together for a period of time. My assumption is that what it's doing in this time is attempting to write to the massive metaData.plist and modify the record of that video to mark it as watched or favorite.

Anyway I'm not exactly sure how to resolve this, I would think breaking the metaData up a little bit so that the application doesn't have to search the entire plist to find the entry it's looking for (maybe one for TVShows one for Movies, or one per Network Mount?). Or maybe there would be a way to record changes in a temp file, and then try to implement them on down times (kind of in the background). Or (and this is a long shot) if there was a way to use a real database system on the AppleTV -- like mySQL, SQLite, Oracle... whatever -- instead of a plist (which wasn't really designed as a database solution) that might speed things up; but again I don't even know if that's possible.

Sorry for the long winded ticket, but thanks for reading it and for your help.

Change History (5)

comment:1 Changed 9 years ago by gbooker

  • Milestone set to Awaiting User Feedback

Or switch to core data using a sqlite db, as in the core data branch. There isn't any searching in the plist as it is constructed in a hierarchical manner, using dictionary lookups everywhere possible.

You should run sample on the process during the freeze to see what the real issue is. It may not be the plist afterall. Marking as awaiting feedback to see the sample.

comment:2 Changed 9 years ago by snown

I've never run a sample before, how would I go about doing that?


comment:3 Changed 9 years ago by gbooker

First, you run the sample during the time when the UI is frozen.

If you are running this on an AppleTV, ssh in and type:
sudo sample Finder 5.
If will give you a filename when it's done; that's the info we need.

If you are running on a mac, you can do the same sample, but it is "Front Row" instead of Finder and the sudo isn't necessary:
sample "Front Row" 5
Alternatively, on the mac, if you have installed the development tools, you can open /Developer/Applications/Performance? Tools/Spin? and it should catch the sample automatically.

comment:4 Changed 9 years ago by snown

OK thanks for the info, I've been away for a couple days but I'll see if I can capture a sample in the next day or two.

comment:5 Changed 9 years ago by gbooker

  • Milestone Awaiting User Feedback deleted
  • Resolution set to invalid
  • Status changed from new to closed

4 months; no reply. Closing

Note: See TracTickets for help on using tickets.