Skip to content

Commit

Permalink
Simplifying codebase by removing excess R wrappers
Browse files Browse the repository at this point in the history
  • Loading branch information
DylanKierans committed Mar 4, 2024
1 parent ba053c4 commit 4ee1840
Show file tree
Hide file tree
Showing 19 changed files with 89 additions and 361 deletions.
13 changes: 1 addition & 12 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down
27 changes: 0 additions & 27 deletions R/otf2_archive.R

This file was deleted.

38 changes: 0 additions & 38 deletions R/otf2_evtWriter.R

This file was deleted.

77 changes: 0 additions & 77 deletions R/otf2_globalDefWriter.R

This file was deleted.

4 changes: 4 additions & 0 deletions R/r_instrument_hl.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
67 changes: 60 additions & 7 deletions R/r_instrument_ll.R
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)))
}
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
#######################################################################
Expand Down
20 changes: 20 additions & 0 deletions man/create_dataframe.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions man/total_num_functions.Rd → man/get_num_functions.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 0 additions & 20 deletions man/rTrace_evtWriter_Write.Rd

This file was deleted.

16 changes: 0 additions & 16 deletions man/rTrace_finalize_Archive.Rd

This file was deleted.

16 changes: 0 additions & 16 deletions man/rTrace_finalize_EvtWriter.Rd

This file was deleted.

Loading

0 comments on commit 4ee1840

Please sign in to comment.