[R-SIG-Mac] Problems with Rcmdr via XQuartz on OSX Mavericks
peter dalgaard
pdalgd at gmail.com
Sat Nov 30 16:00:05 CET 2013
On 30 Nov 2013, at 12:37 , Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
> This does not happen for me provided R.app is visible. From
>
> https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_9.html
>
> 'An app is considered to be a candidate for sleep if:
>
> It is not visible—if all of an app’s windows are either hidden by other windows or minimized in a hidden dock, and the app is not in the foreground
>
> (other necessary conditions)'.
>
> which if accurate indicates that keeping the R.app console unhidden should suffice.
>
>
Some experimenting indicates that R.app will nap with a partially exposed window, if there is no change to the exposed part of the window. If the top right corner is obscured by the Activity Monitor and I change the test command to not generate output, I see
> r <- replicate(50, system.time(replicate(1e4, t.test(rexp(10),mu=1)$statistic))[["elapsed"]])
> r
[1] 5.853 3.607 3.118 3.037 3.012 2.983 2.962 2.978 2.949 2.956
[11] 2.957 19.882 24.386 26.441 25.563 27.452 21.195 20.823 3.012 2.976
[21] 2.965 2.966 2.969 2.945 3.057 2.958 2.942 2.971 2.976 2.936
[31] 2.978 2.960 2.991 2.991 2.994 3.021 2.991 2.974 3.005 2.985
[41] 3.006 2.991 3.033 3.017 2.978 3.012 2.987 2.997 2.995 3.053
(I got bored and woke it after a couple of minutes, at iteration 18).
It doesn't happen if it is the bottom right corner that is obscured, so that the spinning "I'm working" symbol is visible, so I suppose the logic is tied to window updates.
>
> On 30/11/2013 10:59, peter dalgaard wrote:
>>
>> On 29 Nov 2013, at 16:35 , Simon Urbanek <simon.urbanek at r-project.org> wrote:
>>
>>>
>>> But let me say that what has been proposed is very heavy-handed to say it mildly - changing user's configuration files is not something that should be done without user's consent (if at all) - and AFAIK you're not allowed to do it if you plan to put this on CRAN. In addition, it's trying to swat the symptom with a hammer, it doesn't solve the problem (which is why doesn't tcltk wake up sleep with its activity).
>>>
>>
>> On the other hand, the OS is also acting very heavy-handed here! Try this
>>
>>> for (i in 1:100) print(system.time(replicate(1e4, t.test(rexp(10),mu=1)$statistic))[["elapsed"]])
>>
>> and go surf the net or something while you wait. The time per iteration shoots up by a factor of 5-6 as R.app goes into App Nap. I.e., the problem is not confined to tcltk.
>>
>>>
>>>> Wouldn't it be better to handle this issue in R.app or even in tcltk, however?
>>>>
>>>
>>> Yes, it should be handled in either of the two - if this problem is tcltk-specific then tcltk should wake up the sleep, if it is something that affects other R code as well, then it may need to be handled in the R event loop.
>>
>> Looks like it is that latter. Until we figure out how to do that, I think we need to prepare to tell users to set NSAppSleepDisabled, if they want to do something computationally intensive (and be able to go for a cup of coffee in the meantime). Of course it is nicer, OS-wise, to leave App Nap enabled, but it reduces the energy footprint of an inactive R.app from only about 1.5 to nearly 0.0, compared to about 100 when R is actually working.
>>
>
>
> --
> 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
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-SIG-Mac
mailing list