Skip to content

Commit

Permalink
Merge branch 'data-analysis' into data-analysis-cumulative
Browse files Browse the repository at this point in the history
  • Loading branch information
Raiduy committed Feb 13, 2024
2 parents a9e78ac + 6eb1796 commit 476eda0
Show file tree
Hide file tree
Showing 879 changed files with 899,093 additions and 87,195 deletions.
1,398 changes: 978 additions & 420 deletions analysis_BM.ipynb

Large diffs are not rendered by default.

484 changes: 289 additions & 195 deletions analysis_logcat.ipynb

Large diffs are not rendered by default.

144 changes: 16 additions & 128 deletions analysis_network.ipynb

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

20 changes: 6 additions & 14 deletions config.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,17 @@
{
"experiment_name": "clumsy-bandwidth-30Mbps",
"experiment_name": "haptic-traces",
"device": "Quest-2",
"clumsy": {
"clumsy_scripts_path": "C:\\Users\\radua\\VU_Ams\\MSc\\P2\\DS\\LabProject\\DistributedSystems-Traffic-Shaper\\Clumsy-Scripts\\",
"clumsy_path": "C:\\Program Files\\Clumsy\\clumsy.exe",
"delay": -1,
"delay_chance": -1,
"bandwidth_KBps": 3750,
"drop_chance": -1
},
"repetitions": 3,
"repetitions": 1,
"apps": [
{
"name": "BeatSaber",
"variation": "PopStars-Medium",
"variation": "100Bills-Easy",
"exe_name": "Beat Saber.exe",
"steam_app_id": "620980",
"startup_time": 5,
"trace_path": "BeatSaber\\PopStars-Medium\\record1\\PopStars-Medium.txt"
"startup_time": 15,
"trace_path": "BeatSaber\\100Bills-Easy\\record0\\100Bills-Easy.txt"
}
],
"time_between_apps": 10,
"time_between_repetitions": 5
}
}
Binary file modified figures/bandwidth_exp/Quest-2_validation_network_graph_array.pdf
Binary file not shown.
Binary file not shown.
Binary file modified figures/dropchance_exp/fps_vs_dropchance.pdf
Binary file not shown.
Binary file modified figures/energy/watts_vs_bandwidth.pdf
Binary file not shown.
Binary file modified figures/energy/watts_vs_dropchance.pdf
Binary file not shown.
Binary file modified figures/first_pager_bandwidth.pdf
Binary file not shown.
Binary file modified figures/packetloss-validation-weird.pdf
Binary file not shown.
Binary file modified figures/replay_investigation/Quest-2_cpu_gpu.pdf
Binary file not shown.
Binary file modified figures/replay_investigation/Quest-2_power.pdf
Binary file not shown.
Binary file modified figures/replay_investigation/Quest-Pro_cpu_gpu.pdf
Binary file not shown.
Binary file modified figures/replay_investigation/Quest-Pro_power.pdf
Binary file not shown.
Binary file modified figures/swap/PC-A_device_vs_cpu.pdf
Binary file not shown.
Binary file modified figures/swap/PC-A_device_vs_gpu.pdf
Binary file not shown.
Binary file modified figures/swap/PC-B_device_vs_cpu.pdf
Binary file not shown.
Binary file modified figures/swap/PC-B_device_vs_gpu.pdf
Binary file not shown.
Binary file modified figures/swap/val_cpu.pdf
Binary file not shown.
Binary file modified figures/swap/val_energy.pdf
Binary file not shown.
Binary file modified figures/swap/val_gpu.pdf
Binary file not shown.
Binary file modified figures/validation/val_cpu.pdf
Binary file not shown.
Binary file modified figures/validation/val_energy.pdf
Binary file not shown.
Binary file modified figures/validation/val_gpu.pdf
Binary file not shown.
Binary file added figures/wkload_offl/PC-A_device_vs_FPS.pdf
Binary file not shown.
Binary file added figures/wkload_offl/PC-A_device_vs_cpu_usage.pdf
Binary file not shown.
Binary file added figures/wkload_offl/PC-A_device_vs_gpu_usage.pdf
Binary file not shown.
Binary file added figures/wkload_offl/PC-A_device_vs_power.pdf
Binary file not shown.
188,819 changes: 188,819 additions & 0 deletions haptic-traces/Quest-2/BeatSaber/100Bills-Easy/record0/100Bills-Easy.txt

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
234 changes: 234 additions & 0 deletions haptic-traces/Quest-2/BeatSaber/100Bills-Easy/record0/README.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
---
title: "Experiment"
output:
github_document:
toc: yes
toc_depth: 1
dev: svg
---

# Description

# Results

```{r setup, message = FALSE}
library(tidyverse)
theme_set(theme_bw())
library(knitr)
library(forcats)
library(data.table)
library(cowplot)
library(gghighlight)
library(zoo)
library(RColorBrewer)
saveplot <- function(filename, ...) {
ggsave2(filename, ...)
knitr::plot_crop(filename)
}
```

## Frame Rate

```{r frame_rate}
fps <- system('grep -Po "(?<=FPS=)[0-9]+" logcat_VrApi.log', intern = TRUE)
data <- tibble(fps) %>% mutate(fps = as.numeric(fps)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=fps)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```
## Power Draw

### CPU Frequency

```{r battery_headset}
if (file.exists("logcat_VrApi.log")) {
cpu_freq <- system('grep -Po "(?<=CPU4/GPU=)[0-9]/[0-9],[0-9]+/[0-9]+(?=MHz,OC)" logcat_VrApi.log | cut -d, -f 2 | cut -d/ -f 1', intern = TRUE)
data <- tibble(cpu_freq) %>% mutate(cpu_freq = as.numeric(cpu_freq)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=cpu_freq)) +
geom_line() +
ylim(0, NA) +
labs(y = "MHz", x = "time [s]") +
theme_half_open() + background_grid()
}
```
### GPU Frequency

```{r battery_headset}
if (file.exists("logcat_VrApi.log")) {
gpu_freq <- system('grep -Po "(?<=CPU4/GPU=)[0-9]/[0-9],[0-9]+/[0-9]+(?=MHz,OC)" logcat_VrApi.log | cut -d, -f 2 | cut -d/ -f 2', intern = TRUE)
data <- tibble(gpu_freq) %>% mutate(gpu_freq = as.numeric(gpu_freq)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=gpu_freq)) +
geom_line() +
ylim(0, NA) +
labs(y = "MHz", x = "time [s]") +
theme_half_open() + background_grid()
}
```
### CPU Level

```{r battery_headset}
if (file.exists("logcat_VrApi.log")) {
cpu_freq <- system('grep -Po "(?<=CPU4/GPU=)[0-9]/[0-9],[0-9]+/[0-9]+(?=MHz,OC)" logcat_VrApi.log | cut -d, -f 1 | cut -d/ -f 1', intern = TRUE)
data <- tibble(cpu_freq) %>% mutate(cpu_freq = as.numeric(cpu_freq)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=cpu_freq)) +
geom_line() +
ylim(0, NA) +
labs(y = "Level", x = "time [s]") +
theme_half_open() + background_grid()
}
```

### GPU Level

```{r battery_headset}
if (file.exists("logcat_VrApi.log")) {
gpu_freq <- system('grep -Po "(?<=CPU4/GPU=)[0-9]/[0-9],[0-9]+/[0-9]+(?=MHz,OC)" logcat_VrApi.log | cut -d, -f 1 | cut -d/ -f 2', intern = TRUE)
data <- tibble(gpu_freq) %>% mutate(gpu_freq = as.numeric(gpu_freq)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=gpu_freq)) +
geom_line() +
ylim(0, NA) +
labs(y = "Level", x = "time [s]") +
theme_half_open() + background_grid()
}
```

## Battery Levels

### Headset

```{r battery_headset}
if (file.exists("battery.log")) {
battery <- system('grep -Po "(?<=level: )[0-9]+" battery.log', intern = TRUE)
data <- tibble(battery) %>% mutate(battery = as.numeric(battery)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=battery)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
}
```

### Controllers

```{r battery_controllers}
if (file.exists("OVRRemoteService.log")) {
battery <- system("grep -Po '(?<=Type:)\\s+(Left|Right),.+Battery:\\s+[0-9]+(?=%)' OVRRemoteService.log | tr -s ' ' | sed -e \'s/^[[:space:]]*//\' -e \'s/\\n[[:space:]]*//\' | cut -d' ' -f 1,7", intern=TRUE)
data <- tibble(battery) %>% separate(battery, c("hand", "level"), convert = TRUE) %>% group_by(hand) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x=ts, y=level, color=hand)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
}
```

## CPU Usage

```{r cpu_usage}
cpu_util <- system('grep -Po "(?<=CPU%=)[0-9]+.[0-9]+" logcat_VrApi.log', intern = TRUE)
data <- tibble(cpu_util) %>% mutate(cpu_util = 100 * as.numeric(cpu_util)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=cpu_util)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```

## GPU Usage

```{r gpu_usage}
gpu_util <- system('grep -Po "(?<=GPU%=)[0-9]+.[0-9]+" logcat_VrApi.log', intern = TRUE)
data <- tibble(gpu_util) %>% mutate(gpu_util = 100 * as.numeric(gpu_util)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=gpu_util)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```

## Memory Usage

```{r memory_usage}
mem_usage <- system('grep -Po "(?<=Free=)[0-9]+" logcat_VrApi.log', intern = TRUE)
data <- tibble(mem_usage) %>% mutate(mem_usage = 12288 - as.numeric(mem_usage)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=mem_usage)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```

## Temperature

```{r temperature}
temp <- system('grep -Po "(?<=Temp=)[0-9]+" logcat_VrApi.log', intern = TRUE)
data <- tibble(temp) %>% mutate(temp = as.numeric(temp)) %>% mutate(ts = 0:(n()-1)) %>% select(ts, everything())
data %>%
ggplot(aes(x = ts, y=temp)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```

## Network Usage

```{r parse_network_data}
network <- system('grep -P "\\s+wlan0\\W" net_dev.log | tr -s " " | sed -e \'s/^[[:space:]]*//\' -e \'s/\\n[[:space:]]*//\'', intern = TRUE)
data <- tibble(network) %>% separate(network, c("interface", "bytes_rx", "packets_rx", "errs_rx", "drop_rx", "fifo_rx", "frame_rx", "compressed_rx", "multicast_rx", "bytes_tx", "packets_tx", "errs_tx", "drop_tx", "fifo_tx", "colls_tx", "carrier_tx", "compressed_tx"), sep = " ", convert = TRUE) %>% mutate(ts = 0:(n()-1))
```

### Bytes Recv

<!-- Inter-| Receive | Transmit -->
<!-- face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed -->
```{r bytes_recv}
data %>%
mutate(bytes_rx = (bytes_rx - lag(bytes_rx)) / 1000) %>%
ggplot(aes(x = ts, y=bytes_rx)) +
geom_line() +
ylab("KB/s") +
ylim(0, NA) +
theme_half_open() + background_grid()
```

### Bytes Sent

```{r bytes_sent}
data %>%
mutate(bytes_tx = (bytes_tx - lag(bytes_tx)) / 1000) %>%
ggplot(aes(x = ts, y=bytes_tx)) +
geom_line() +
ylab("KB/s") +
ylim(0, NA) +
theme_half_open() + background_grid()
```

### Packets Recv

```{r packets_recv}
data %>%
mutate(packets_rx = packets_rx - lag(packets_rx)) %>%
ggplot(aes(x = ts, y=packets_rx)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```

### Packets Sent

```{r packets_sent}
data %>%
mutate(packets_tx = packets_tx - lag(packets_tx)) %>%
ggplot(aes(x = ts, y=packets_tx)) +
geom_line() +
ylim(0, NA) +
theme_half_open() + background_grid()
```
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 476eda0

Please sign in to comment.