[Rcpp-devel] Rcpp Timer
Dirk Eddelbuettel
edd at debian.org
Fri Dec 30 14:01:48 CET 2016
On 30 December 2016 at 06:37, Dirk Eddelbuettel wrote:
|
| On 29 December 2016 at 11:25, Jonathan Christensen wrote:
| | Hi Kaspar and Dirk,
| |
| | It is indeed cumulative. Previously (presumably when that gallery page was
| | written) it was not cumulative, but Romain Francois changed the behavior of the
| | step() function several years ago, in this commit: https://github.com/RcppCore/
| | Rcpp/commit/e295b2b178de55291e63705966368404bb0ce5e1.
|
| Nice catch.
|
| | There is no indication or reasoning about changing the behavior, so it may be
| | that making it cumulative was unintentional.
|
| Let's presume it was intentional to the author of the change -- but as you
| rightly point out, it did of course change and reverse previous behaviour.
|
| We could easily add a toggle to the constructor to get an either/or behaviour.
Even easier:
- Add a step() call immediately after creating timer()
- This also records the start
- Results are still cumulative
- Running diff() over it shows changes:
Demo using minimally modified Rcpp Gallery piece (just added step("start"); )
R> sourceCpp("/tmp/timer.cpp")
R> tt <- useTimer()
R> tt # cumulative
start get/put g/p+rnorm() empty loop
0.000114 1629.043000 3996.890739 3996.893329
R> diff(tt) # incremental
get/put g/p+rnorm() empty loop
1629.04289 2367.84774 0.00259
R>
I will alter the gallery story accordingly. We can always add a 'zero' step
to the constructor to get these two behaviours cheaply.
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the Rcpp-devel
mailing list