mirror of
https://github.com/logos-storage/bittorrent-benchmarks.git
synced 2026-01-08 07:53:11 +00:00
63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
---
|
|
title: "static-dissemination.Rmd"
|
|
output: html_document
|
|
date: "2025-01-10"
|
|
---
|
|
|
|
```{r}
|
|
library(tidyverse)
|
|
|
|
devtools::load_all()
|
|
```
|
|
|
|
```{r}
|
|
deluge <- read_all_experiments('./data/deluge')
|
|
```
|
|
|
|
```{r}
|
|
benchmarks <- lapply(deluge, function(experiment) {
|
|
print(glue::glue('Process {experiment$experiment_id}'))
|
|
download_time_stats <- tryCatch({
|
|
meta <- experiment$meta
|
|
completion <- experiment |>
|
|
download_times() |>
|
|
completion_time_stats()
|
|
|
|
if (is.null(completion)) {
|
|
NULL
|
|
} else {
|
|
completion |> mutate(
|
|
network_size = meta$nodes$network_size,
|
|
seeders = meta$seeders,
|
|
leechers = network_size - meta$seeders,
|
|
file_size = meta$file_size
|
|
)
|
|
}
|
|
}, error = function(e) { print(e); NULL })
|
|
}) |>
|
|
drop_nulls() |>
|
|
bind_rows() |>
|
|
arrange(file_size, network_size, seeders, leechers) |>
|
|
mutate(
|
|
file_size = as.character(rlang::parse_bytes(as.character(file_size))),
|
|
seeder_ratio = seeders/network_size
|
|
) |>
|
|
relocate(file_size, network_size, seeders, leechers)
|
|
```
|
|
|
|
```{r}
|
|
benchmarks
|
|
```
|
|
|
|
|
|
```{r}
|
|
ggplot(benchmarks |> filter(file_size == '104.86 MB')) +
|
|
geom_line(aes(x = network_size, y = median)) +
|
|
geom_point(aes(x = network_size, y = median)) +
|
|
ylab('median download time (seconds)') +
|
|
xlab('network size') +
|
|
theme_minimal() +
|
|
facet_wrap(seeder_ratio ~ file_size)
|
|
```
|
|
|