Re: Slow Show/Graphics in v6.0
- To: mathgroup at smc.vnet.net
- Subject: [mg80941] Re: Slow Show/Graphics in v6.0
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 6 Sep 2007 05:21:18 -0400 (EDT)
- Organization: Uni Leipzig
- References: <fbljvd$qf5$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi, for the first statement try Timing[ With[{mr = 350, mt = 350}, xar = Table[((ir - 1.)/(mr - 1.))* Cos[Pi*((it - 1.)/(mt - 1.))], {it, 1, mt}, {ir, 1, mr}]; yar = Table[((ir - 1.)/(mr - 1.))* Sin[Pi*((it - 1.)/(mt - 1.))], {it, 1, mt}, {ir, 1, mr}]; ]] and it will be faster. For the second part, Timing[] is absolute wrong, because the time is spend by the rendering of the Frontend and Timing[] measure only the time spend by the kernel. Anyway Timing[ With[{mr = 350, mt = 350}, data = Table[{ ((ir - 1.)/(mr - 1.))*Cos[Pi*((it - 1.)/(mt - 1.))], ((ir - 1.)/(mr - 1.))*Sin[Pi*((it - 1.)/(mt - 1.))]}, {it, 1, mt}, {ir, 1, mr}]; ]] Timing[ i = 0; idx = Map[++i &, data, {2}]; gc = GraphicsComplex[Flatten[data, 1], Line[Flatten[ Drop[Drop[#, -1] & /@ Transpose[{idx, RotateLeft [idx], RotateLeft /@ RotateLeft [idx], RotateLeft /@ idx}, {3, 1, 2}], -1], 1]]]; Graphics[{Hue[0.7], AbsoluteThickness[0.1], gc}, PlotRange -> {{-1, 1}, {0, 1}}, AspectRatio -> 1/2, Axes -> True, DisplayFunction -> $DisplayFunction, ImageSize -> 800]] will be 3 times faster in the kernel. But the true effect comes from the rendering in the Frontend. Regards Jens Alex Shvydky wrote: > Hello, > > Just wanted to share my puzzlement (utter disappointment/ > frastration) with a ridiculously slow speed of Show/Graphics > routines in the v6.0 of Mathematica as compared to 5.2, > which to me at this point makes v6.0 plain unusable. > > Working with hydrodynamic simulations I need to > visualize the computational grid. So I wrote > simple Mathematica routines to draw a simulation grid. > In 5.2 they worked fabulously for the past couple of > years. > > Here's an example. > First, set up two 2dimensional x- and y-coordinate > arrays. > > Timing[ > mr = 350; > mt = 350; > xar = Table[((ir - 1.)/(mr - 1.))*Cos[Pi*((it - 1.)/(mt - 1.))], > {it, 1, mt}, {ir, 1, mr}]; > yar = Table[((ir - 1.)/(mr - 1.))*Sin[Pi*((it - 1.)/(mt - 1.))], > {it, 1, mt}, {ir, 1, mr}]; > ] > > In v6.0 it took > Out[3]= {2.312, Null} > In v5.2 it took > {0.281 Second, Null} > > Which is an order of magnitude difference, but hold on. > Now let's plot the mesh by simply constructing table > of edges of all the cells (I am aware that the algorithm > below is very unoptimized and can be made faster etc. etc. > It was not my intention to discuss here what should be the > fastest algorithm to plot a 2-d mesh, > nor was it my intention to debate the issue why one > would need to plot such a large mesh in the first place..., > but rather to compare the execution time for an IDENTICAL > code on v6.0 and v5.2. and get some confirmation/explanation > of such a suspiciously slow execution speed!).: > > Timing[ > Show[ > Graphics[{Hue[0.7], AbsoluteThickness[0.1], > Table[{Line[{{xar[[it,ir]], yar[[it,ir]]}, > {xar[[it,ir + 1]],yar[[it,ir + 1]]}, > {xar[[it + 1,ir + 1]], yar[[it + 1,ir + 1]]}, > {xar[[it + 1,ir]], yar[[it + 1,ir]]}}]}, > {ir, 1, mr - 1}, {it, 1, mt - 1}] > }], > PlotRange -> {{-1, 1}, {0, 1}}, AspectRatio -> 1/2, Axes -> True, > DisplayFunction -> $DisplayFunction, ImageSize -> 800]] > > While the timing as, it is returned by the Timing[] function, > is smaller in the v6.0: > {1.703, <Here goes the actual graphics>} > vs. > {2.094 Second, -Graphics-} > in v5.2 > > > The actual cell evaluation time in v.6.0 is 124.11 seconds > vs. 2.22 seconds in v 5.2. ???!!!!!!! > > Could anybody please confirm this. Also it would be helpful > if someone from Wolfram Research would explain if > that is intended (unavoidable) by design or maybe > a simple setting (which I am unaware of) or a future patch > will be able to fix it. > > Also, it is horribly slow to resize the above graphics > in v5.2 you just grab the corned and drag. In v6.0 you > must do it 10-100 times slower (is it possible > that I just have a very poor graphics card?). > > > Thanks, > Alex Shvydky >