Re: Could someone help optimize this for Mathematica 9?
- To: mathgroup at smc.vnet.net
- Subject: [mg128956] Re: Could someone help optimize this for Mathematica 9?
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Wed, 5 Dec 2012 03:15:58 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20121204091410.B2B8E68C4@smc.vnet.net>
mNumberSamples = 100000;
mFrequency = 10;
m = Table[{t/mNumberSamples,
Sin[t/mNumberSamples mFrequency*2 \[Pi]]}*1.0,
{t, 1, mNumberSamples}];
mStartTime = SessionTime[];
ListLinePlot[m]
mStopTime = SessionTime[];
StringForm["Elapsed time = ``", t1 = N[mStopTime - mStartTime]]
StringForm["Elapsed time = ``", 4.99887]
$PerformanceGoal /.
Options[ListLinePlot, PerformanceGoal]
"Quality"
mStartTime = SessionTime[];
ListLinePlot[m, PerformanceGoal :> "Speed"]
mStopTime = SessionTime[];
StringForm["Elapsed time = ``", t2 = N[mStopTime - mStartTime]]
StringForm["Elapsed time = ``", 4.875941]
t2/t1
0.975409
Not much benefit here; however, unless there is some reason why you
need to look at all of the data, you could look at a sample of the
data.
mStartTime = SessionTime[];
ListLinePlot[m[[1 ;; mNumberSamples ;; 100]], PerformanceGoal :> "Speed"]
mStopTime = SessionTime[];
StringForm["Elapsed time = ``", t3 = N[mStopTime - mStartTime]]
StringForm["Elapsed time = ``", 0.058132]
t3/t1
0.011629
Using this approach there is some risk that you would miss a critical
feature. MaxPlotPoints is probably "smarter" at sampling but provides
much less speed benefit.
mStartTime = SessionTime[];
ListLinePlot[m, PerformanceGoal :> "Speed",
MaxPlotPoints -> mNumberSamples/100]
mStopTime = SessionTime[];
StringForm["Elapsed time = ``", t4 = N[mStopTime - mStartTime]]
StringForm["Elapsed time = ``", 3.893177]
t4/t1
0.778811
Bob Hanlon
On Tue, Dec 4, 2012 at 4:14 AM, McHale, Paul <Paul.McHale at excelitas.com> wrote:
> We have a strong need to view large numbers of data points. Mathematica 8 was excellent at this. The following code executed under both 8 and 9 (Windows):
>
> Mathematica 8: Less than 0.5 seconds
> Mathematica 9: Greater than 4 seconds
>
> mNumberSamples=100000;
> mFrequency=10;
> m=Table[{t/mNumberSamples ,Sin[t/mNumberSamples mFrequency*2 \[Pi]]}*1.0,{t,1,mNumberSamples}];mStartTime=SessionTime[];
> ListLinePlot[m]
> mStopTime=SessionTime[];
> StringForm["Elapsed time = ``", N[mStopTime-mStartTime]]
>
> I have tried the code on a slower mac laptop (version 9 only) and had the same slower results. Any input welcome as this functionality is extremely important to us.
>
>
> Paul McHale | Electrical Engineer, Energetics Systems | Excelitas Technologies Corp.
>
>
>
>
>
> Phone: +1 937.865.3004 | Fax: +1 937.865.5170 | Mobile: +1 937.371.2828
> 1100 Vanguard Blvd, Miamisburg, Ohio 45342-0312 USA
> Paul.McHale at Excelitas.com
> www.excelitas.com
>
>
>
>
- References:
- Could someone help optimize this for Mathematica 9?
- From: "McHale, Paul" <Paul.McHale@excelitas.com>
- Could someone help optimize this for Mathematica 9?