OK Guys- I've figured out a way to increase the "MY Music" Performance Issue for large libraries. I have about 25,000 WMA Lossless songs loaded on an external (Firewire) terabyte drive. Before implementing the following approach, it could take up to 2 minutes to load an artist's albums, or do a search for a song (sometimes it never came back). I have that down to less than 5 Seconds NOW!!!! I am only going to outline the approach, and what I did, but it can be accomplished with other similar methods. NOTE: This is not for the faint of heart!
The basic concept is: Keep the Music catalog persistent in memory.
I basically realized that MCE was encountering performance issues with the music catalog used by Windows Media Player 10. The catalog is stored in the directory "C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Media Player. The file name is CurrentDatabase_219.wmdb.
All I had to do was keep it in memory (easier said than done).
1) I Created a RAMDISK (I used the Software Ramdisk Plus by Superspeed (www.superspeed.com). Note: Whatever RAMDISK software/drive you use must support NTFS. Also your hard drive must be an NTFS volume not a FAT32. The Ramdisk has to be at larger than the size of the CurrentDatabase_219.wmdb file. My file size was 150mb, so I made my RAMDISK 300M.
2) I couldn't find a way in the registry or thru Media player 10 options to change the default location of the library database, so I could point it to my new RAMDRIVE. Instead, I had to create the equivalent of a UNIX symbolic link (A directory which actually points to another drive). There is a little known command in windows called JUNCTION.exe. This accomplishes the same thing a symbolic link. I've read you have to be very careful in how you use and setup junctions (I guess that’s why Bill doesn't make it very well know). I used some shareware called Junction Link Magic (http://www.rekenwonder.com/linkmagic.htm) to setup my link. You can also do it thru command line, but it’s a real pain.
3) Now I created the Link. I made a backup of the Directory C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Media Player first. I then made a junction between C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Media Player and another directory I created on my RAMDISK.
4) I then copied everything from my backup directory to C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Media Player. Note: The C:\Documents and Settings\<username>\Local Settings\Application Data\Microsoft\Media Player directory is actually a Junction to a directory on my RAMDISK. The database is now stored in memory!
5) If you Run the media center and go to "My Music" you notice a phenomenal increase in performance!!!!!!!!!
Other NOTES:
Remember, your Library database is now stored in memory (RAMDISK). This means every time your Media Center is turned of or loses power, you lose your music database. Depending on the RAMDRIVE software you use, this may or may not be an issue. The RAMDisk plus software I use automatically writes your RAMDISK to your hard drive on Shutdown, and Restores your RAMDrive on boot up. This way you won’t have to rebuild your database or worry about losing it. However, if your PC crashes, you will lose your library. Just make sure to make backups. If a crash occurs, just copy from your backup directory, or rebuild the database.
If anyone else can figure out an easier way of keeping the music persistant in memory, pls post.
Good Luck all
Well done! I know that Thomas Hawk will be very happy!
I just need to buy another 22,000 tracks now.
Cheers,Andy
Presumably where the database is stored is a feature of the default profile - couldn't you modify the default profile so that all users shared the same database?
This is great information. I have also been dealing with the 'slowness' of the My Music function.
FYI: Don't bother trying to use a USB flash disc to store the database. The issue here is speed of access. A USB flash drive is many times slower than a hard drive, so you'd actually experience much worse performance. The ramdisk concept works because RAM is the fastest available storage in a computer.
HKEY_CURRENT_USER references the user that is logged on in the session that you are using - you would need to make this mod on the MCX account for an extender. I don't know what would happen if you had multiple users sharing a single database though.
Dumb question, but what do you do when you shut the machine down? Do you copy the database to permanent storage or do you have a RAMdrive card with battery backup?
Does this database file also store the information for videos on MCE? Or are movies done differently. I have a lot of movies on my HTPC and it takes a long time to load that menu as well.
Thanks
Just music.