This is just the kind of low-hanging fruit we need to address! At first glance the patch looks good. With the type of obvious speed improvements I don't think we need a detailed profile report :). Please attach the patch to bug 889825 and it will get in the queue for consideration and review.
thanks, Owen Williams On Thu, 2012-03-08 at 18:38 +0530, Akash Shetye wrote: > Hello everyone, > > I was looking at the bug #889825 that was about the freezing of Mixxx > gui when bulk amount of tracks are added to a crate. The freeze time > is very irritating and reproducible for selections above 30 or so many > tracks on my computer. As it is mentioned in the bug, the bottleneck > is about the repeated inserts that are done iteratively for each > selected track. > > A little googling around and this reference suggested dramatic > increase in speed on bulk inserts. An average insert statement that > inserts one row consumes substantial overhead mainly due to the > frequent commits to the DB which have to be written to disk. A work > around suggested was that we use transactions to commit only when all > bulk inserts have been executed. In this the data is written onto the > RAM and not the disks and hence reduces our wait time per insert. > > I wrote the code to use this approach. The results were very good. > Possibly this approach in the DAOs of single SQL operations may be the > reason for the bulk selections bottlenecks that we see in Mixxx. So > this patch works for bulk inserts into a crate. Simply for the sake of > a stress test: > > 1)create new crate > 2)go to library and select all and add to this crate > 3)perhaps after a few seconds they all must be in > 4)go to the crate and select all > 5)remove them, since the remove functionality does not use this > approach, it should be terribly slower. > > I didn't have any quantitative tools to measure the performance > difference so i counted from 1 onwards, but on an average during bulk > add to crate before i could count to 38, with this improvement i can > just count till 3, also for remove I could count till 28. Sorry for > the nomadic measure of time :D > > Thank you, > Akash Shetye > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ Mixxx-devel mailing list > Mixxx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mixxx-devel ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel