Slow performance of adding MIDI Events to MusicTrack?
Slow performance of adding MIDI Events to MusicTrack?
- Subject: Slow performance of adding MIDI Events to MusicTrack?
- From: NickK <email@hidden>
- Date: Tue, 8 Dec 2009 14:52:35 +0000
Hi all,
I've been working on a MIDI application and I'm just creating a test track of 10,000,000 events spread over 46 notes. Once created the application stores the MusicSequence as a file. I traditionally use large data sets to ensure the applications are written to deliver fast processing and I've done it this time to ensure latency is kept to a minimum for MIDI.
The problem I have is that the MusicTrackNewMIDINoteEvent method is exceptionally slow - in the order of 30 minutes for adding 100,000 events. All the program is doing is 10M loops of adding note events into the MusicTrack.
I've sampled the application running and it spends 100% of it's time within std::vector operations - iterator and copy. So I'm assuming it adds the event by iterating through the entire current set until it finds the correct timestamp location and then makes a gap my copying the data before inserting it.
It seems a little barking mad for Apple to use a linear search routine and I would suspect a hashed based dense key storage system would have been better? This would slow down with more additions!
Is this a known issue that others have experienced?
I'm using SL, with the compilation running Release x86_64 in addition to auto-vec & SSE optimisations on a MBP3,1 2.4GHz with 4GB.
Warmest regards,
Nick._______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden