Benchmarking Results

Computational Resources

All benchmarks were performed on the same machine to ensure consistent comparisons.

  • CPU: Apple M1 Pro
  • Number of Cores: 10
  • Memory: 16GB RAM
  • Operating System: macOS Sonoma 14.7
  • Julia Version: 1.9.3
  • R Version: 4.3.1

Direct Comparison (When an equivalent fuction in R is avaliable)

Below is a comparison of the benchmarking results between my Julia package and functions/equivalent implementation in R. All times are in millisecond, and memory is in mebibytes (MiB). Only mean execution times are presented here.

Test CaseJulia Execution TimeR Execution TimeSpeedup (Julia/R)Memory Usage (Julia)Memory Usage (R)R Function and Package used
beta_diversity_10.1182.24819x0.1320.057beta.div.comp from adespatial
beta_diversity_20.0390.2707x0.1330.125beta.div.comp from adespatial
beta_diversity_30.0380.2807x0.1330.125beta.div.comp from adespatial
spatial_beta_div_10.95419.53020x2.3003.451implementation from Guzman et al. (2022)
spatial_beta_div_20.63117.10627x1.9003.009implementation from Guzman et al. (2022)
spatial_beta_div_30.58616.74229x1.9003.009implementation from Guzman et al. (2022)
temporal_beta_div_19.01286.39610x14.76017.342implementation from Guzman et al. (2022)
temporal_beta_div_21.43920.51614x3.5405.630implementation from Guzman et al. (2022)
temporal_beta_div_31.43821.00615x3.5405.630implementation from Guzman et al. (2022)
DNCI_multigroup_result261.03345849.450176x407.0710630.390DNCI_multigroup from DNCImper
prop_patches_result1.49118.72613x2.3202.412implementation from Guzman et al. (2022)
CV_meta_simple_result105.155152.7301x35.4155.435implementation from Wang et al. (2019)

Self-Benchmarking (For Julia-Only Functions)

These functions are unique to the Julia package and do not have equivalents in R. We provide benchmarks in terms of execution time and memory usage as a point of comparison for future work or potential replication in other languages. All times are in millisecond, and memory is in mebibytes (MiB). Only mean execution times are presented here.

Test CaseJulia Execution TimeMemory Usage (Julia)Data Size (row, column)
cluster_result1.601916.8802545, 5
plot_clusters_result3.656817.93023, 3
niche_overlap_result6823.000118.28048735, 4
CV_meta_result161600.00096317.4448735, 4

Remarks

  • Speedup is calculated as the ratio of R execution time to Julia execution time and rounded to the nearest integer.
  • The test case names are assigned according to the object names used for the benchmarking results. If applicable, the same object name is used for the same test case between Julia and R for consistency.
  • The same data input are used in Julia and R for each test case.
  • For CV_meta_simple_result and CV_meta_result, they are both benchmarked using the same dataset (48735, 4).
  • For DNCI_multigroup_result, 100 permutations are used in both the julia and R function.

The Scripts Used for Benchmarking