obtenir le temps d'exécution en millisecondes dans la R
J'ai lu une solution à cela en utilisant tic(), toc() functions
tic <- function(gcFirst = TRUE, type=c("elapsed", "user.self", "sys.self"))
{
type <- match.arg(type)
assign(".type", type, envir=baseenv())
if(gcFirst) gc(FALSE)
tic <- proc.time()[type]
assign(".tic", tic, envir=baseenv())
invisible(tic)
}
toc <- function()
{
type <- get(".type", envir=baseenv())
toc <- proc.time()[type]
tic <- get(".tic", envir=baseenv())
print(toc - tic)
invisible(toc)
}
tic();
-----code----
toc();
elapsed
0.15
Mais je voudrais passer un beaucoup de précision dans millisecondes?
Aussi j'ai été en utilisant cette
ptm <- proc.time()
---code
proc.time() - ptm
et obtenir ce
user system elapsed
1.55 0.25 1.84
Comment obtenir plus de décimales ou plus de précision?
- À partir de la page d'aide pour
proc.time
: "La résolution de la ces horaires seront spécifiques au système et sur Unix-sosies fois arrondies à l'entier le plus proche de 1ms."
Vous devez vous connecter pour publier un commentaire.
1) le Calendrier est dépendante du système d'exploitation. Sur Windows, vous pouvez seulement obtenir millisecondes.
2) Aucun besoin de définir
tic()
ettoc()
, R asystem.time()
. Voici un exemple:3) Il y a d'excellents add-on des paquets rbenchmark et microbenchmark.
3.1) rbenchmark est particulièrement utile pour la comparaison de commandes, mais peut également être utilisé directement:
3.2) microbenchmark excelle dans la plus haute précision des mesures:
et ce dernier, en particulier sur Linux, vous donne déjà nano-secondes. Il peut également tracé des résultats etc, donc regarder de plus près à ce paquet.
system.time(replicate(1000, ----several lines of code------ ))
?Cette une seule est bonne:
Prises de ici.
Place
start_time
avant votre code etend_time
après votre code.c'est à dire