Brad Templeton Home


Brad Ideas
(My Blog)


ClariNet

Interviews

EFF

Jokes / RHF

Photo Pages

Panoramic Photos

SF Publishing

Software

Articles & Essays

Spam

DNS

Jesus
The Book

Dot!

Packages

Interests


RHF Home

Ty Templeton Home

Stig's Inferno

Copyright Myths

Emily Postnews

Africa

Burning Man

Phone Booth

Alice Pascal

The Rules for Guys

Bill Gates

   
 

Benchmark MythTV

Benchmark MythTV

Here is a benchmark I have been using for performance of systems running MythTV. This is mostly for HDTV, as this is where performance matters.

Benchmarking mpeg decode, which is what eats up resources when playing HDTV, is hard because it is running at a fixed rate. So we play a video and measure how much spare capacity we have. We measure that by running a cpu-bound task we are interested in running while we watch, namely the mythcommflag program.

I welcome you to do your own tests and report numbers on the mythtv-users mailing list. If you do tests, be sure to include in your report

  • Your CPU, its clock speed or rating and whether it is hyperthreaded.
  • Your memory speed, FSB speed and motherboard chip set
  • Your graphics card
  • Your release of mythtv -- ideally 0.17 -- and how it was built.
  • Anything unusual worthy of note.

The test

Run the test on an otherwise idle machine. Ideally we would use standard files for this but we don't have them. Turn off xvmc if you have it on. You can turn it on later for extra tests.

Have the commands "top" and "mpstat" on your machine. On hyperthreaded machines, the idle times from these programs are misleading. "mpstat -P ALL 2" is a command to help you see the split out numbers, but again the idle is a lie.

Turn on "ALL" methods in mythcommflag. Ideally

Pick a video to do your mythcommflag on. Go to your directory for shows, and pick a video. You will run "mythcommflag -f file.nuv" or similar. I used a 480i mpeg2 but a 720p mpeg2 can also be used, or try both.

  1. First, run a baseline. Run mythcommflag without any video playing. After it does the logo check it will start to note a frames/second number. This is your baseline on an unloaded machine. To save time, use the frames/second after a short period of flagging. This is a cumulative number and it tends to change over time but we don't have the time to wait for the full number every time.
  2. Now, start playing a 720p video in Myth. Alt-TAB back to the shell and note idle times. Then run your mythcommflag. Note the frames/second, and check idle times if you like with mpstat.
  3. Repeat this step while playing a 1080i video.
  4. If you like, repeat the above commflagging a video of a different sort or resolution.
  5. If you like, repeat some steps using the new "use libmpeg2" codec.

If you want to expand your tests, you can try this with xvmc on, or you can also try playing one of the videos with mplayer (and/or mplayer using xvmc) instead of the myth internal player. People report it as being more efficient but it doesn't do many of the things the myth player does.

We would like to see numbers for a range of systems, including Semprons, Celeron D, P4, Athlon XP, Sempron 3100 etc. Of particular interest are Athlon 64, with the myth player compiled both in 32 bit and 64 bit mode if possible. Real dual processors (not just hyperthread) are also of interest. Compare anything you can...