[R-SIG-Mac] quartz device extremely slow (2.7.0)

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Apr 27 16:50:01 CEST 2008


On Sun, 27 Apr 2008, Tomas Mikoviny wrote:

> OK I've checked the RQuartz_Polyline and RQuartz_Polygon. Its quite
> straight forward. However I don't see anything causing problem we
> discuss.

Please read what I actually asked you to do -- yes, I do know the code, 
but I asked you to change it following gdraw.c and test the change.

> tomas
> 
> 
> # Revision 45515: /branches/R-2-7-branch/src/library/grDevices/src
> -----------
> 
> static void RQuartz_Polyline(int n, double *x, double *y, CTXDESC)
> {
>     if (n < 2) return;
>     int i;
>     DRAWSPEC;
>     if (!ctx) NOCTX;
>     SET(RQUARTZ_STROKE | RQUARTZ_LINE);
>     CGContextBeginPath(ctx);
>     CGContextMoveToPoint(ctx, x[0], y[0]);
>     for(i = 1 ; i < n; i++)
> CGContextAddLineToPoint(ctx, x[i], y[i]);
>     CGContextStrokePath(ctx);
> }
> 
> static void RQuartz_Polygon(int n, double *x, double *y, CTXDESC)
> {
>     if (n < 2) return;
>     int i;
>     DRAWSPEC;
>     if (!ctx) NOCTX;
>     SET(RQUARTZ_FILL | RQUARTZ_STROKE | RQUARTZ_LINE);
>     CGContextBeginPath(ctx);
>     CGContextMoveToPoint(ctx, x[0], y[0]);
>     for(i = 1; i < n; i++)
> CGContextAddLineToPoint(ctx, x[i], y[i]);
>     CGContextClosePath(ctx);
>     CGContextDrawPath(ctx, kCGPathFillStroke);
> }
> ------------
> 
> 
> 
> On 27 Apr 2008, at 15:08, Prof Brian Ripley wrote:
>
>       Some versions of Windows GDI have a superficially identical
>       problem -- stroking a path is quadratic in the number of
>       segments.  The solution we used (in gdrawpolyline, in
>       src/extra/graphapp/gdraw.c) was to split the drawing into
>       pieces of length 1000, and that could be used here.  It would
>       be a simple modification to RQuartz_Polyline and
>       RQuartz_Polygon, so please try it and let us know how you get
>       on.
>
>       It would also have been helpful to (C-level) profile the call
>       and find out where the time is being spent -- I expect it not
>       to be in R at all but in Quartz.
>
>       On Sun, 27 Apr 2008, Tomas Mikoviny wrote:
>
>             I found where is the problem, however have no
>             solution for it right now.
>
>             To demonstrate (I have chosen 6000 to match my
>             datasets size):
> 
>
>             x=seq(1:6000)
>
>             y=rnorm(6000)
>
>             plot(x,y)
> 
>
>             Absolutely no problem until now, everything is
>             responsive, no lags.
> 
>
>             Problem appears when I insert parameter 'type':
> 
>
>             slowdown and unacceptable lag for "l", "o", "s"
>
>             plot(x,y, type="l")
>
>             plot(x,y, type="o")
>
>             ...
> 
>
>             however no problem at all  (instantly plotted)
>             for "p", "b", "c", "h"
>
>             plot(x,y, type="p")
>
>             plot(x,y, type="b")
>
>             ...
> 
>
>             Does anyone know possible reason for this
>             behaviour. Once again, I use
>
>             clear install of R version 2.7.0 (2008-04-22).
>             When I try the same
>
>             stuff with latest 2.6.2 version everything runs
>             smoothly without any
>
>             problems.
> 
>
>             tomas
> 
> 
>
>             On 27 Apr 2008, at 10:49, Charles Hebert wrote:
> 
>
>                   Hi all,
> 
>
>                   I've the same problem + the resizing
>                   of the window is really really
>
>                   slow... for all datasets. I'm running
>                   leopard 10.5.2 and the latest
>
>                   macOS R dmg.
> 
>
>                   For all datasets. But when i use
>                   quartz() then plot, it seems ok
>
>                   (slow again but... usable). So right
>                   now, i use quartz(file,
>
>                   type="pdf")...
> 
>
>                   Best regards,
> 
>
>                   Charles
> 
>
>             _______________________________________________
>
>             R-SIG-Mac mailing list
>
>             R-SIG-Mac at stat.math.ethz.ch
>
>             https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> 
> 
>
>       --
>       Brian D. Ripley,                  ripley at stats.ox.ac.uk
>       Professor of Applied Statistics,
>        http://www.stats.ox.ac.uk/~ripley/
>       University of Oxford,             Tel:  +44 1865 272861
>       (self)
>       1 South Parks Road,                     +44 1865 272866 (PA)
>       Oxford OX1 3TG, UK                Fax:  +44 1865 272595
> 
> 
> 
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-SIG-Mac mailing list