View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006441||MediaMonkey (current)||Synchronization||public||2010-08-12 13:08||2011-05-16 00:04|
|Target Version||4.0||Fixed in Version||4.0|
|Summary||0006441: High CPU utilization during playback off of iPhone|
|Description||During playback of any track off an iPhone, for the first 62 seconds, CPU utilization hovers around 65% (and goes back up to 65% when each subsequent track starts playing).|
Tested iTunes 9.2 + MM 188.8.131.520
Note: I have not had a chance to test this out with an earlier version of iTunes + MM 3.2.1, however, I've played music off iPhones in the past and never noticed this issue. Moreover, the device has only 830 files + 0000074:0000150 on the sync list so it doesn't make sense that it would take so long.
|Additional Information||Reported at: http://mediamonkey.com/forum/viewtopic.php?f=6&t=37924|
Attached debug log:
7456: playback initiated --> high cpu utilization for 1 min
0002551:0007800: cpu utilization went down
8000: track 2 began playing --> high cpu utilization for 1 min
0002726:0008300: cpu utilization went down
8553: pressed STOP and then closed MM
-when I start MM and click the iPhone node, DB sync takes about 1-2 seconds
-when I initiate playback from the iPhone --> high cpu utilization, if I press the 'stop' button during the period of high CPU utilization, the player stops, BUT cpu utilization remains high for the full 0000021:0000060 seconds
|Tags||No tags attached.|
|Fixed in build||1312|
iPhone_playback_high_cpu.zip (103,923 bytes)
Feedback from Jiri:
here's what I've found so far:
1. Creating iPhone DB really takes some time, longer than I'd like to. I suppose that it could be optimized, not sure how much.
2. ! However, I haven't seen any difference in timings whether it's during playback or e.g. after deleting one track from iPhone.
3. ! Also, to make sure there isn't a regression, I installed MM 184.108.40.2064, re-compiled d_iPhone.dll with that small change needed in order to work with iTunes 9.2 (should be irrelevant to the measurements) and the result was the same as in MM 220.127.116.110, i.e. I don't see any difference or regression.
3a. One could say that it might be somehow caused by iTunes 9.2, but I'm pretty sure it isn't, I measured it internally in MM and the slowest part if generating of SQLite databases for iPhone, which isn't in any way related to iTunes.
So, I'd say there isn't any regression. I could try to speed it up, but I'd rather avoid it as this state in order to not introduce some problems. Let me know if you find out anything more, but I hope we rather release MM 3.2.2 as is.
Set target to 4.0.
As I do not have iPhone I'm thinking if there is the way to generate iPhone SQLite db off the phone and then write it in phone itself. It should lease stress on iPhone Connection?
Another approach would be to buffer track in memory while MM is building iPhone DB
Fixed in build 1312.
- Significantly optimized DB creation, the main part is much faster now, it's about 15 times faster for 1000 tracks and 35 times faster for 3000 tracks (etc - removed exponential time complexity).