Thread: [Audacity-devel] Slow update of selection posn on big projects
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Norm C <n_b...@ho...> - 2013-11-13 05:00:19
|
When working with large projects (eg. my latest is 15 tracks, each an hour long) it can take several seconds on a moderately fast PC to simply update the selection cursor position when you click in a track. This feels exceedingly sluggish. The majority of that time is spent rewriting the autosave file, which in my case is over 2 MB long and involves thousands of mallocs, one per string. I noticed a comment in TrackPanel about how MakeParentModifyState in this case "doesn't warrant autosave, maybe implement bWantsAutoSave". Makes sense to me, and doing that results in the updates happening very quickly. Seems to me that the downside of losing the selection position in the event of a crash is pretty minimal, and the time saving is pretty substantial. But there may be differences of opinion. Should this be opened as a bug report, or an enhancement, or should I go ahead and submit the patch? Norm -- View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542.html Sent from the audacity-devel mailing list archive at Nabble.com. |
From: Federico M. <fm...@fc...> - 2013-11-13 22:00:37
|
Norm, >Seems to me that the downside of losing the selection position in the event >of a crash is pretty minimal, and the time saving is pretty substantial. Again, I agree, consider it a vote. Regards, Federico |
From: Richard A. <ri...@au...> - 2013-11-14 10:08:28
|
On Tue, 12 Nov 2013 21:00:12 -0800 (PST) Norm C <n_b...@ho...> wrote: > When working with large projects (eg. my latest is 15 tracks, each an > hour long) it can take several seconds on a moderately fast PC to > simply update the selection cursor position when you click in a > track. This feels exceedingly sluggish. The majority of that time is > spent rewriting the autosave file, which in my case is over 2 MB long > and involves thousands of mallocs, one per string. I noticed a > comment in TrackPanel about how MakeParentModifyState in this case > "doesn't warrant autosave, maybe implement bWantsAutoSave". Makes > sense to me, and doing that results in the updates happening very > quickly. > > Seems to me that the downside of losing the selection position in the > event of a crash is pretty minimal, and the time saving is pretty > substantial. But there may be differences of opinion. Should this be > opened as a bug report, or an enhancement, or should I go ahead and > submit the patch? I can't see any down side as described, so I'd like to see the patch. I've certainly seen the symptoms when using Audacity on low power platforms (raspberry pi) or with large projects (16 hours long on an AMD C60 netbook), so if we can fix it safely I'm all for it. I also wonder if we could make the autosave process quicker by avoiding memory (re)allocation if that is the constraint, but the trade off for this specific case is certainly worth looking at. Richard |
From: Martyn S. <mar...@gm...> - 2013-11-14 23:27:25
|
On 14/11/2013 10:08, Richard Ash wrote: > On Tue, 12 Nov 2013 21:00:12 -0800 (PST) > Norm C <n_b...@ho...> wrote: > >> When working with large projects (eg. my latest is 15 tracks, each an >> hour long) it can take several seconds on a moderately fast PC to >> simply update the selection cursor position when you click in a >> track. This feels exceedingly sluggish. The majority of that time is >> spent rewriting the autosave file, which in my case is over 2 MB long >> and involves thousands of mallocs, one per string. I noticed a >> comment in TrackPanel about how MakeParentModifyState in this case >> "doesn't warrant autosave, maybe implement bWantsAutoSave". Makes >> sense to me, and doing that results in the updates happening very >> quickly. >> >> Seems to me that the downside of losing the selection position in the >> event of a crash is pretty minimal, and the time saving is pretty >> substantial. But there may be differences of opinion. Should this be >> opened as a bug report, or an enhancement, or should I go ahead and >> submit the patch? > > I can't see any down side as described, so I'd like to see the patch. +1 Martyn > I've certainly seen the symptoms when using Audacity on low power > platforms (raspberry pi) or with large projects (16 hours long on an > AMD C60 netbook), so if we can fix it safely I'm all for it. > > I also wonder if we could make the autosave process quicker by avoiding > memory (re)allocation if that is the constraint, but the trade off for > this specific case is certainly worth looking at. > > Richard > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > |
From: Norm C <n_b...@ho...> - 2013-12-09 01:12:49
|
OK, here's the patch. NoAutosaveOnSelect.diff <http://audacity.238276.n2.nabble.com/file/n7560869/NoAutosaveOnSelect.diff> New parameter bWantsAutoSave, and it gets set to false for anything that looked to me like it was just setting start and/or end selections. Brings the multi-second lag down to well under a second on my hour-long 15-track project. Norm -- View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560869.html Sent from the audacity-devel mailing list archive at Nabble.com. |
From: Martyn S. <mar...@gm...> - 2013-12-10 00:20:42
|
Thanks Norm! I see that you have tracked down every (?) instance of *ModifyState and added a true or false on whether we should AutoSave that, which must have been quite a task! Well done. The only one I would argue with is TrackPanel::OnSetDisplay where I think it should be 'true'. I was going to say "why not ModifyState(bool bWantsAutoSave = true)" and avoid changing those cases, but I think that forcing the coder to think about that is wise, in this instance. Others may differ. A comment about that may be useful. There is a noticeable and useful speed-up on a 70min single track here. The patch didn't apply directly here, but that may be down to various other patches that I am trying out. Please try against a fresh checkout and re-submit if necessary. I'll let others contemplate this, but feel free to ping me after Christmas if this hasn't made progress. TTFN Martyn On 09/12/2013 01:12, Norm C wrote: > OK, here's the patch. > > NoAutosaveOnSelect.diff > <http://audacity.238276.n2.nabble.com/file/n7560869/NoAutosaveOnSelect.diff> > > New parameter bWantsAutoSave, and it gets set to false for anything that > looked to me like it was just setting start and/or end selections. Brings > the multi-second lag down to well under a second on my hour-long 15-track > project. > > Norm > > > > > -- > View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560869.html > Sent from the audacity-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Sponsored by Intel(R) XDK > Develop, test and display web and hybrid apps with a single code base. > Download it for free now! > http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > |
From: Steve t. F. <ste...@gm...> - 2013-12-11 00:41:46
|
On 10 December 2013 00:20, Martyn Shaw <mar...@gm...> wrote: > Thanks Norm! > > I see that you have tracked down every (?) instance of *ModifyState > and added a true or false on whether we should AutoSave that, which > must have been quite a task! Well done. The only one I would argue > with is TrackPanel::OnSetDisplay where I think it should be 'true'. > > I was going to say "why not ModifyState(bool bWantsAutoSave = true)" > and avoid changing those cases, but I think that forcing the coder to > think about that is wise, in this instance. Others may differ. A > comment about that may be useful. > > There is a noticeable and useful speed-up on a 70min single track here. > > The patch didn't apply directly here, but that may be down to various > other patches that I am trying out. Tried on a clean svn checkout and it does not apply here either. The patch is not relative to the root folder of the svn tree and is malformed at line 276. > Please try against a fresh > checkout and re-submit if necessary. Yes please :-) Steve > > I'll let others contemplate this, but feel free to ping me after > Christmas if this hasn't made progress. > > TTFN > Martyn > > On 09/12/2013 01:12, Norm C wrote: >> OK, here's the patch. >> >> NoAutosaveOnSelect.diff >> <http://audacity.238276.n2.nabble.com/file/n7560869/NoAutosaveOnSelect.diff> >> >> New parameter bWantsAutoSave, and it gets set to false for anything that >> looked to me like it was just setting start and/or end selections. Brings >> the multi-second lag down to well under a second on my hour-long 15-track >> project. >> >> Norm >> >> >> >> >> -- >> View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560869.html >> Sent from the audacity-devel mailing list archive at Nabble.com. >> >> ------------------------------------------------------------------------------ >> Sponsored by Intel(R) XDK >> Develop, test and display web and hybrid apps with a single code base. >> Download it for free now! >> http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk >> _______________________________________________ >> audacity-devel mailing list >> aud...@li... >> https://lists.sourceforge.net/lists/listinfo/audacity-devel >> > > ------------------------------------------------------------------------------ > Sponsored by Intel(R) XDK > Develop, test and display web and hybrid apps with a single code base. > Download it for free now! > http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel |
From: Norm C <n_b...@ho...> - 2013-12-12 04:56:08
|
Thanks for the comments. Here's a new patch: NoAutosaveOnSelect.diff <http://audacity.238276.n2.nabble.com/file/n7560887/NoAutosaveOnSelect.diff> against a fresh checkout. I added some more detailed comments, and also used (true) in OnSetDisplay. Not sure about Steve's comment "not relative to the root folder" - I used TortoiseSvn to "Create patch" after selecting the 5 files involved. Is this not how I should do it? (I am semi-familiar with svn, but not so much with creating patches). Thx Norm -- View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560887.html Sent from the audacity-devel mailing list archive at Nabble.com. |
From: Martyn S. <mar...@gm...> - 2013-12-12 23:55:36
|
Hi Norm The patch works fine now for me, and thanks for the changes. Upon code-review, I can't see any problems with this. A more general comment in a later post. Steve's comment about 'not relative to the root folder' ties up with what you say. In future, use TortoiseSvn to "Create patch" on the root folder, one up from src. This allows us to put any patch in the root and apply it, without worrying about if it is for a library, src, script etc.. I am very tempted to apply this, one +1 with no -1s and I will. TTFN Martyn On 12/12/2013 04:56, Norm C wrote: > Thanks for the comments. Here's a new patch: > > NoAutosaveOnSelect.diff > <http://audacity.238276.n2.nabble.com/file/n7560887/NoAutosaveOnSelect.diff> > > against a fresh checkout. I added some more detailed comments, and also used > (true) in OnSetDisplay. Not sure about Steve's comment "not relative to the > root folder" - I used TortoiseSvn to "Create patch" after selecting the 5 > files involved. Is this not how I should do it? (I am semi-familiar with > svn, but not so much with creating patches). > > Thx > Norm > > > > > -- > View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560887.html > Sent from the audacity-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > > |
From: Martyn S. <mar...@gm...> - 2013-12-30 00:42:06
|
Hi I see no more comments on this and so have gone with my temptations and committed it. Thanks for the attention Norm! I'm sure this will speed operations up (with very little down-side) on longer projects. TTFN Martyn On 12/12/2013 23:55, Martyn Shaw wrote: > Hi Norm > > The patch works fine now for me, and thanks for the changes. > > Upon code-review, I can't see any problems with this. > > A more general comment in a later post. > > Steve's comment about 'not relative to the root folder' ties up with > what you say. In future, use TortoiseSvn to "Create patch" on the > root folder, one up from src. This allows us to put any patch in the > root and apply it, without worrying about if it is for a library, src, > script etc.. > > I am very tempted to apply this, one +1 with no -1s and I will. > > TTFN > Martyn > > On 12/12/2013 04:56, Norm C wrote: >> Thanks for the comments. Here's a new patch: >> >> NoAutosaveOnSelect.diff >> <http://audacity.238276.n2.nabble.com/file/n7560887/NoAutosaveOnSelect.diff> >> >> >> against a fresh checkout. I added some more detailed comments, and >> also used >> (true) in OnSetDisplay. Not sure about Steve's comment "not relative >> to the >> root folder" - I used TortoiseSvn to "Create patch" after selecting >> the 5 >> files involved. Is this not how I should do it? (I am semi-familiar >> with >> svn, but not so much with creating patches). >> >> Thx >> Norm >> >> >> >> >> -- >> View this message in context: >> http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560887.html >> >> Sent from the audacity-devel mailing list archive at Nabble.com. >> >> ------------------------------------------------------------------------------ >> >> Rapidly troubleshoot problems before they affect your business. Most IT >> organizations don't have a clear picture of how application performance >> affects their revenue. With AppDynamics, you get 100% visibility >> into your >> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of >> AppDynamics Pro! >> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk >> >> _______________________________________________ >> audacity-devel mailing list >> aud...@li... >> https://lists.sourceforge.net/lists/listinfo/audacity-devel >> >> |
From: Vaughan J. <va...@au...> - 2014-01-01 00:12:40
|
+1. Thanks to both of you. - V On 12/29/2013 4:41 PM, Martyn Shaw wrote: > Hi > > I see no more comments on this and so have gone with my temptations > and committed it. Thanks for the attention Norm! I'm sure this will > speed operations up (with very little down-side) on longer projects. > > TTFN > Martyn > > On 12/12/2013 23:55, Martyn Shaw wrote: >> Hi Norm >> >> The patch works fine now for me, and thanks for the changes. >> >> Upon code-review, I can't see any problems with this. >> >> A more general comment in a later post. >> >> Steve's comment about 'not relative to the root folder' ties up with >> what you say. In future, use TortoiseSvn to "Create patch" on the >> root folder, one up from src. This allows us to put any patch in the >> root and apply it, without worrying about if it is for a library, src, >> script etc.. >> >> I am very tempted to apply this, one +1 with no -1s and I will. >> >> TTFN >> Martyn >> >> On 12/12/2013 04:56, Norm C wrote: >>> Thanks for the comments. Here's a new patch: >>> >>> NoAutosaveOnSelect.diff >>> <http://audacity.238276.n2.nabble.com/file/n7560887/NoAutosaveOnSelect.diff> >>> >>> >>> against a fresh checkout. I added some more detailed comments, and >>> also used >>> (true) in OnSetDisplay. Not sure about Steve's comment "not relative >>> to the >>> root folder" - I used TortoiseSvn to "Create patch" after selecting >>> the 5 >>> files involved. Is this not how I should do it? (I am semi-familiar >>> with >>> svn, but not so much with creating patches). >>> >>> Thx >>> Norm >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560887.html >>> >>> Sent from the audacity-devel mailing list archive at Nabble.com. >>> >>> ------------------------------------------------------------------------------ >>> >>> Rapidly troubleshoot problems before they affect your business. Most IT >>> organizations don't have a clear picture of how application performance >>> affects their revenue. With AppDynamics, you get 100% visibility >>> into your >>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of >>> AppDynamics Pro! >>> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk >>> >>> _______________________________________________ >>> audacity-devel mailing list >>> aud...@li... >>> https://lists.sourceforge.net/lists/listinfo/audacity-devel >>> >>> > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > |
From: Martyn S. <mar...@gm...> - 2013-12-12 23:56:03
|
A more general comment on this improvement: I am wondering when else we could do without AutoSave, like with vertical zooming perhaps? Particularly as we don't save that in the AUP anyway! That gives a speed-up for long files. Any others? TTFN Martyn On 12/12/2013 04:56, Norm C wrote: > Thanks for the comments. Here's a new patch: > > NoAutosaveOnSelect.diff > <http://audacity.238276.n2.nabble.com/file/n7560887/NoAutosaveOnSelect.diff> > > against a fresh checkout. I added some more detailed comments, and also used > (true) in OnSetDisplay. Not sure about Steve's comment "not relative to the > root folder" - I used TortoiseSvn to "Create patch" after selecting the 5 > files involved. Is this not how I should do it? (I am semi-familiar with > svn, but not so much with creating patches). > > Thx > Norm > > > > > -- > View this message in context: http://audacity.238276.n2.nabble.com/Slow-update-of-selection-posn-on-big-projects-tp7560542p7560887.html > Sent from the audacity-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > > |