diff --git a/NAMESPACE b/NAMESPACE index 17943d7..dd5e6f5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,6 +4,7 @@ export(get_function_exception_list) export(get_function_index) export(get_function_list) export(get_function_methods) +export(get_num_functions) export(get_package_exception_list) export(get_user_function_list) export(insert_instrumentation) @@ -17,20 +18,8 @@ export(instrumentation_init) export(is_instrumentation_enabled) export(makeCluster_test) export(print_function_from_index) -export(rTrace_evtWriter_Write) -export(rTrace_finalize_Archive) -export(rTrace_finalize_EvtWriter) -export(rTrace_finalize_GlobalDefWriter) -export(rTrace_globalDefWriter_WriteLocation) -export(rTrace_globalDefWriter_WriteRegion) -export(rTrace_globalDefWriter_WriteString) -export(rTrace_globalDefWriter_WriteSystemTreeNode) -export(rTrace_init_Archive) -export(rTrace_init_EvtWriter) -export(rTrace_init_GlobalDefWriter) export(skip_function) export(test_instrumentation) -export(total_num_functions) export(try_insert_instrumentation) exportPattern("^[[:alpha:]]+") importFrom(R.utils,isPackageLoaded) diff --git a/R/otf2_archive.R b/R/otf2_archive.R deleted file mode 100644 index 5d74885..0000000 --- a/R/otf2_archive.R +++ /dev/null @@ -1,27 +0,0 @@ -# @file otf2_archive -# @brief Wrapper for OTF2_Archive functions -# @version 0.01 -# @author D.Kierans (dylanki@kth.se) -# @date 2024-01-16 - -#' rTrace_init_Archive -#' Simple wrapper for C++ otf2 init function -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_init_Archive <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper init_Archive\n") - init_Archive() - if (flag_debug) cat("Finished function init_Archive.\n") -} - -#' rTrace_finalize_Archive -#' Simple wrapper for C++ otf2 finalize function -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_finalize_Archive <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper finalize_Archive\n") - finalize_Archive() - if (flag_debug) cat("Finished function finalize_Archive.\n") -} - - diff --git a/R/otf2_evtWriter.R b/R/otf2_evtWriter.R deleted file mode 100644 index d04fd58..0000000 --- a/R/otf2_evtWriter.R +++ /dev/null @@ -1,38 +0,0 @@ -# @file otf2_evtWriter.R -# @brief Wrapper for OTF2_EvtWriter functions -# @version 0.01 -# @author D.Kierans (dylanki@kth.se) -# @date 2024-01-16 - -#' rTrace_init_ - doxygen documentation -#' Simple wrapper for C++ otf2 init function -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_init_EvtWriter <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper\n") - init_EvtWriter() - if (flag_debug) cat("Finished function.\n") -} - -#' rTrace_finalize_Archive- doxygen documentation -#' Simple wrapper for C++ otf2 init function -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_finalize_EvtWriter <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper\n") - finalize_EvtWriter() - if (flag_debug) cat("Finished function.\n") -} - - -#' rTrace_evtWriter_Write - doxygen documentation -#' More info -#' @param regionRef Int - regionRef -#' @param event_type Bool - True if enter, False if exit -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_evtWriter_Write <- function(regionRef, event_type, flag_debug=F) { - if (flag_debug) cat("Entering wrapper:\n") - evtWriter_Write(regionRef, event_type) - if (flag_debug) cat("Finished wrapper.\n") -} diff --git a/R/otf2_globalDefWriter.R b/R/otf2_globalDefWriter.R deleted file mode 100644 index c9c075d..0000000 --- a/R/otf2_globalDefWriter.R +++ /dev/null @@ -1,77 +0,0 @@ -# @file OTF2_GlobalDefWriter.R -# @brief Wrapper for OTF2_GlobalDefWriter functions -# @version 0.01 -# @author D.Kierans (dylanki@kth.se) -# @date 2024-01-16 - -#' init_GlobalDefWriter - doxygen documentation -#' More info -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_init_GlobalDefWriter <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper rTrace_init_GlobalDefWriter\n") - init_GlobalDefWriter() - if (flag_debug) cat("Finished wrapper rTrace_init_GlobalDefWriter.\n") -} - -#' finalize_GlobalDefWriter - doxygen documentation -#' More info -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_finalize_GlobalDefWriter <- function(flag_debug=F) { - if (flag_debug) cat("Entering wrapper rTrace_finalize_GlobalDefWriter\n") - finalize_GlobalDefWriter() - if (flag_debug) cat("Finished wrapper rTrace_finalize_GlobalDefWriter.\n") -} - -# -#' globalDefWriter_WriteString - doxygen documentation -#' More info -#' @param stringRefValue String - String for globalDefWriter -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_globalDefWriter_WriteString <- function(stringRefValue, flag_debug=F) { - if (flag_debug) cat("Entering wrapper rTrace_globalDefWriter_WriteString\n") - stringRef <- globalDefWriter_WriteString(stringRefValue) - if (flag_debug) cat("Finished wrapper rTrace_globalDefWriter_WriteString.\n") - stringRef -} - -#' globalDefWriter_WriteRegion - doxygen documentation -#' More info -#' @param stringRef_RegionName Int - Index for names, taken from stringRef's -#' @return regionRef Int - Index for regionRef -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_globalDefWriter_WriteRegion <- function(stringRef_RegionName, flag_debug=F){ - if (flag_debug) cat("Entering wrapper rTrace_globalDefWriter_WriteRegion\n") - regionRef <- globalDefWriter_WriteRegion(stringRef_RegionName) - if (flag_debug) cat("Finished wrapper rTrace_globalDefWriter_WriteRegion\n") - regionRef -} - -#' globalDefWriter_WriteSystemTreeNode - doxygen documentation -#' More info -#' @param stringRef_name Int - Index for name of system tree -#' @param stringRef_class Int - Index for class of system tree -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_globalDefWriter_WriteSystemTreeNode <- function(stringRef_name, stringRef_class, flag_debug=F) { - if (flag_debug) cat("Entering globalDefWriter_WriteSystemTreeNode\n") - globalDefWriter_WriteSystemTreeNode(stringRef_name, stringRef_class) - if (flag_debug) cat("Finished globalDefWriter_WriteSystemTreeNode.\n") -} - - -#' globalDefWriter_WriteLocation - doxygen documentation -#' @param stringRef_name Int - Index for name of location -#' More info -#' @param flag_debug Boolean - True to enable verbose stdout -#' @export -rTrace_globalDefWriter_WriteLocation <- function(stringRef_name, flag_debug=F) { - if (flag_debug) cat("Entering wrapper rTrace_globalDefWriter_WriteLocation\n") - globalDefWriter_WriteLocation(stringRef_name) - if (flag_debug) cat("Finished wrapper rTrace_globalDefWriter_WriteLocation.\n") -} - - diff --git a/R/r_instrument_hl.R b/R/r_instrument_hl.R index bd51677..cc0bc8d 100644 --- a/R/r_instrument_hl.R +++ b/R/r_instrument_hl.R @@ -56,6 +56,10 @@ is_instrumentation_enabled <- function() { #' @export instrumentation_init <- function(flag_user_functions=T, verbose_wrapping=F) { + # @name PROFILE_INSTRUMENTATION_DF + # @description Contains function name, package, and instrumentation flag + pkg.env$PROFILE_INSTRUMENTATION_DF <- create_dataframe(flag_user_functions=flag_user_functions) + # @name INSTRUMENTATION_INIT # @description Checked when instrumenting functions to ensure init() has been called pkg.env$INSTRUMENTATION_INIT <- TRUE diff --git a/R/r_instrument_ll.R b/R/r_instrument_ll.R index afbadae..0f14618 100644 --- a/R/r_instrument_ll.R +++ b/R/r_instrument_ll.R @@ -185,13 +185,13 @@ get_user_function_list <- function(flag_debug=FALSE) { } -#' total_num_functions +#' get_num_functions #' @description Find total number of loaded packages and functions #' @param flag_user_functions Boolean - TRUE if also flagging user functions #' @param debug_flag Boolean - TRUE to print debug information #' @return Int[] Number of functions per package #' @export -total_num_functions <- function(flag_user_functions=FALSE, debug_flag=FALSE) { +get_num_functions <- function(flag_user_functions=FALSE, debug_flag=FALSE) { packages <- .packages() full_packages <- paste0("package:",packages) @@ -213,7 +213,7 @@ total_num_functions <- function(flag_user_functions=FALSE, debug_flag=FALSE) { ## DEBUGGING if (debug_flag) { - print("########## PROFILE_TOTAL_NUM_FUNCTIONS() ############") + print("########## PROFILE_get_num_functions() ############") print(paste0("Total - number of packages: ", num_packages, ", number of functions: ", sum(num_functions))) } @@ -335,8 +335,8 @@ try_insert_instrumentation <- function(func_info, func_ptrs, env_is_locked, #' @param func_name String - Name of function #' @return regionRef Int - Index of stringRef for function create_otf2_event <- function(func_name) { - stringRef <- rTrace_globalDefWriter_WriteString(func_name) - regionRef <- rTrace_globalDefWriter_WriteRegion(stringRef) + stringRef <- globalDefWriter_WriteString(func_name) + regionRef <- globalDefWriter_WriteRegion(stringRef) regionRef } @@ -366,7 +366,7 @@ instrument_all_functions <- function(package_list=NULL, flag_user_functions=TRUE package_exception_list <- get_package_exception_list() ## Needed for finding index offset - num_func_per_package <- total_num_functions(flag_user_functions=flag_user_functions) + num_func_per_package <- get_num_functions(flag_user_functions=flag_user_functions) ## Cycle through every package for (package_name in package_list) { @@ -518,7 +518,7 @@ instrument_user_functions <- function(flag_debug=FALSE) function_methods_exception_list <- get_function_methods(function_exception_list) ## Function index offset - num_func_per_package <- total_num_functions() + num_func_per_package <- get_num_functions() func_global_index <- sum(num_func_per_package) ## DEBUGGING @@ -552,6 +552,59 @@ instrument_user_functions <- function(flag_debug=FALSE) } +####################################################################### +# section - dataframe +####################################################################### + +#' create_dataframe +#' @description See return +#' @param flag_debug Boolean - Enabled debug state,emts +#' @param flag_user_functions Boolean - TRUE to include user functions in dataframe +#' @return Dataframe containing each function with information on function name, +#' package, count of function calls, total time spent in function +create_dataframe <- function(flag_user_functions=FALSE, flag_debug=FALSE) { + packages <- .packages() + num_functions_per_package <- get_num_functions(flag_user_functions=flag_user_functions) + num_functions_total <- sum(num_functions_per_package) + + if (flag_user_functions) { packages <- append(packages, "user_functions") } + + ## Sections in dataframe + function_names <- names(get_function_list()) + if (flag_user_functions) { function_names <- append(function_names, names(get_user_function_list())) } + package_list <- array(,num_functions_total) + #count <- integer(num_functions_total) + #total_time <- numeric(num_functions_total) + instrumented <- logical(num_functions_total) + + ## DEBUGGING: + if (flag_debug) { + print("################ DATAFRAME #################") + print(length(function_names)) + print(num_functions_total) + print(num_functions_per_package) + print(package_list) + } + + # package each entry in function_names belongs to + index <- 1 + for (i_package in 1:length(packages)) { + tmp <- num_functions_per_package[i_package] + package_list[index:(index-1+tmp)] <- packages[i_package] + index <- index+tmp + } + + # Init count and time arrays + #count[1:num_functions_total] <- 0L + #total_time[1:num_functions_total] <- 0.0 + instrumented[1:num_functions_total] <- FALSE + + #data.frame(packages=package_list, functions=function_names, function_instrumented=instrumented, function_count=count, function_time=total_time) + data.frame(packages=package_list, functions=function_names, function_instrumented=instrumented) +} + + + ####################################################################### # section - helper functions ####################################################################### diff --git a/man/create_dataframe.Rd b/man/create_dataframe.Rd new file mode 100644 index 0000000..7f66ae9 --- /dev/null +++ b/man/create_dataframe.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/r_instrument_ll.R +\name{create_dataframe} +\alias{create_dataframe} +\title{create_dataframe} +\usage{ +create_dataframe(flag_user_functions = FALSE, flag_debug = FALSE) +} +\arguments{ +\item{flag_user_functions}{Boolean - TRUE to include user functions in dataframe} + +\item{flag_debug}{Boolean - Enabled debug state,emts} +} +\value{ +Dataframe containing each function with information on function name, +package, count of function calls, total time spent in function +} +\description{ +See return +} diff --git a/man/total_num_functions.Rd b/man/get_num_functions.Rd similarity index 70% rename from man/total_num_functions.Rd rename to man/get_num_functions.Rd index 464fbf9..9e6ec7a 100644 --- a/man/total_num_functions.Rd +++ b/man/get_num_functions.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/r_instrument_ll.R -\name{total_num_functions} -\alias{total_num_functions} -\title{total_num_functions} +\name{get_num_functions} +\alias{get_num_functions} +\title{get_num_functions} \usage{ -total_num_functions(flag_user_functions = FALSE, debug_flag = FALSE) +get_num_functions(flag_user_functions = FALSE, debug_flag = FALSE) } \arguments{ \item{flag_user_functions}{Boolean - TRUE if also flagging user functions} diff --git a/man/rTrace_evtWriter_Write.Rd b/man/rTrace_evtWriter_Write.Rd deleted file mode 100644 index 1c996df..0000000 --- a/man/rTrace_evtWriter_Write.Rd +++ /dev/null @@ -1,20 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_evtWriter.R -\name{rTrace_evtWriter_Write} -\alias{rTrace_evtWriter_Write} -\title{rTrace_evtWriter_Write - doxygen documentation -More info} -\usage{ -rTrace_evtWriter_Write(regionRef, event_type, flag_debug = F) -} -\arguments{ -\item{regionRef}{Int - regionRef} - -\item{event_type}{Bool - True if enter, False if exit} - -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -rTrace_evtWriter_Write - doxygen documentation -More info -} diff --git a/man/rTrace_finalize_Archive.Rd b/man/rTrace_finalize_Archive.Rd deleted file mode 100644 index 31f6b43..0000000 --- a/man/rTrace_finalize_Archive.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_archive.R -\name{rTrace_finalize_Archive} -\alias{rTrace_finalize_Archive} -\title{rTrace_finalize_Archive -Simple wrapper for C++ otf2 finalize function} -\usage{ -rTrace_finalize_Archive(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -rTrace_finalize_Archive -Simple wrapper for C++ otf2 finalize function -} diff --git a/man/rTrace_finalize_EvtWriter.Rd b/man/rTrace_finalize_EvtWriter.Rd deleted file mode 100644 index 31a12e7..0000000 --- a/man/rTrace_finalize_EvtWriter.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_evtWriter.R -\name{rTrace_finalize_EvtWriter} -\alias{rTrace_finalize_EvtWriter} -\title{rTrace_finalize_Archive- doxygen documentation -Simple wrapper for C++ otf2 init function} -\usage{ -rTrace_finalize_EvtWriter(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -rTrace_finalize_Archive- doxygen documentation -Simple wrapper for C++ otf2 init function -} diff --git a/man/rTrace_finalize_GlobalDefWriter.Rd b/man/rTrace_finalize_GlobalDefWriter.Rd deleted file mode 100644 index 6f54cf3..0000000 --- a/man/rTrace_finalize_GlobalDefWriter.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_finalize_GlobalDefWriter} -\alias{rTrace_finalize_GlobalDefWriter} -\title{finalize_GlobalDefWriter - doxygen documentation -More info} -\usage{ -rTrace_finalize_GlobalDefWriter(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -finalize_GlobalDefWriter - doxygen documentation -More info -} diff --git a/man/rTrace_globalDefWriter_WriteLocation.Rd b/man/rTrace_globalDefWriter_WriteLocation.Rd deleted file mode 100644 index cc4c266..0000000 --- a/man/rTrace_globalDefWriter_WriteLocation.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_globalDefWriter_WriteLocation} -\alias{rTrace_globalDefWriter_WriteLocation} -\title{globalDefWriter_WriteLocation - doxygen documentation} -\usage{ -rTrace_globalDefWriter_WriteLocation(stringRef_name, flag_debug = F) -} -\arguments{ -\item{stringRef_name}{Int - Index for name of location -More info} - -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -globalDefWriter_WriteLocation - doxygen documentation -} diff --git a/man/rTrace_globalDefWriter_WriteRegion.Rd b/man/rTrace_globalDefWriter_WriteRegion.Rd deleted file mode 100644 index c56de07..0000000 --- a/man/rTrace_globalDefWriter_WriteRegion.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_globalDefWriter_WriteRegion} -\alias{rTrace_globalDefWriter_WriteRegion} -\title{globalDefWriter_WriteRegion - doxygen documentation -More info} -\usage{ -rTrace_globalDefWriter_WriteRegion(stringRef_RegionName, flag_debug = F) -} -\arguments{ -\item{stringRef_RegionName}{Int - Index for names, taken from stringRef's} - -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\value{ -regionRef Int - Index for regionRef -} -\description{ -globalDefWriter_WriteRegion - doxygen documentation -More info -} diff --git a/man/rTrace_globalDefWriter_WriteString.Rd b/man/rTrace_globalDefWriter_WriteString.Rd deleted file mode 100644 index e312d0d..0000000 --- a/man/rTrace_globalDefWriter_WriteString.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_globalDefWriter_WriteString} -\alias{rTrace_globalDefWriter_WriteString} -\title{globalDefWriter_WriteString - doxygen documentation -More info} -\usage{ -rTrace_globalDefWriter_WriteString(stringRefValue, flag_debug = F) -} -\arguments{ -\item{stringRefValue}{String - String for globalDefWriter} - -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -globalDefWriter_WriteString - doxygen documentation -More info -} diff --git a/man/rTrace_globalDefWriter_WriteSystemTreeNode.Rd b/man/rTrace_globalDefWriter_WriteSystemTreeNode.Rd deleted file mode 100644 index 43249a6..0000000 --- a/man/rTrace_globalDefWriter_WriteSystemTreeNode.Rd +++ /dev/null @@ -1,24 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_globalDefWriter_WriteSystemTreeNode} -\alias{rTrace_globalDefWriter_WriteSystemTreeNode} -\title{globalDefWriter_WriteSystemTreeNode - doxygen documentation -More info} -\usage{ -rTrace_globalDefWriter_WriteSystemTreeNode( - stringRef_name, - stringRef_class, - flag_debug = F -) -} -\arguments{ -\item{stringRef_name}{Int - Index for name of system tree} - -\item{stringRef_class}{Int - Index for class of system tree} - -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -globalDefWriter_WriteSystemTreeNode - doxygen documentation -More info -} diff --git a/man/rTrace_init_Archive.Rd b/man/rTrace_init_Archive.Rd deleted file mode 100644 index 707080c..0000000 --- a/man/rTrace_init_Archive.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_archive.R -\name{rTrace_init_Archive} -\alias{rTrace_init_Archive} -\title{rTrace_init_Archive -Simple wrapper for C++ otf2 init function} -\usage{ -rTrace_init_Archive(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -rTrace_init_Archive -Simple wrapper for C++ otf2 init function -} diff --git a/man/rTrace_init_EvtWriter.Rd b/man/rTrace_init_EvtWriter.Rd deleted file mode 100644 index 918d646..0000000 --- a/man/rTrace_init_EvtWriter.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_evtWriter.R -\name{rTrace_init_EvtWriter} -\alias{rTrace_init_EvtWriter} -\title{rTrace_init_ - doxygen documentation -Simple wrapper for C++ otf2 init function} -\usage{ -rTrace_init_EvtWriter(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -rTrace_init_ - doxygen documentation -Simple wrapper for C++ otf2 init function -} diff --git a/man/rTrace_init_GlobalDefWriter.Rd b/man/rTrace_init_GlobalDefWriter.Rd deleted file mode 100644 index 3a0d020..0000000 --- a/man/rTrace_init_GlobalDefWriter.Rd +++ /dev/null @@ -1,16 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/otf2_globalDefWriter.R -\name{rTrace_init_GlobalDefWriter} -\alias{rTrace_init_GlobalDefWriter} -\title{init_GlobalDefWriter - doxygen documentation -More info} -\usage{ -rTrace_init_GlobalDefWriter(flag_debug = F) -} -\arguments{ -\item{flag_debug}{Boolean - True to enable verbose stdout} -} -\description{ -init_GlobalDefWriter - doxygen documentation -More info -}