Skip to content

Instantly share code, notes, and snippets.

@RCura
Last active February 6, 2017 16:46
Show Gist options
  • Save RCura/701f7e1bd7482a262e3f643d5f227bc6 to your computer and use it in GitHub Desktop.
Save RCura/701f7e1bd7482a262e3f643d5f227bc6 to your computer and use it in GitHub Desktop.
Benchmarking leaflet.extras::addHeatmap vs leaflet.extras::addWebGLHeatmap
Bench Fastest Median Slowest StdDev
heat_10k 397ms 416ms 428ms 8ms
webgl_10k 473ms 501ms 511ms 12ms
heat_100k 667ms 704ms 726ms 18ms
webgl_100k 1184ms 1213ms 1332ms 54ms
heat_250k 1068ms 1104ms 1140ms 19ms
webgl_250k 2585ms 2652ms 2668ms 23ms
heat_500k 1768ms 1801ms 1828ms 18ms
webgl_500k 4926ms 4955ms 4980ms 13ms
heat_1M 3541ms 3606ms 3728ms 49ms
webgl_1M 10182ms 10543ms 10575ms 154ms
heat_2M 6479ms 6552ms 6669ms 64ms
webgl_2M 19315ms 20365ms 20514ms 389ms
---
title: "Leaflet heatmaps benchmarks"
author: "Robin Cura"
date: "6 février 2017"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
# Data preparation
```{r}
library(tibble)
library(dplyr)
paris <- list(
min = list(Long = 2.199669, Lat = 48.806185),
max = list(Long = 2.481194, Lat = 48.899258)
)
paris$mean <- list(Long = mean(c(paris$min$Long, paris$max$Long)),
Lat = mean(c(paris$min$Lat, paris$max$Lat)))
paris$sd <- list(Long = (paris$max$Long - paris$min$Long) / 2,
Lat = (paris$max$Lat - paris$min$Lat) / 2)
set.seed(1000)
sampleSizes <- c(10E3, 100E3, 250E3, 500E3, 1E6, 2E6)
coordsSample <- data_frame(lng = rnorm(n = max(sampleSizes), mean = paris$mean$Long, sd = paris$sd$Long),
lat = rnorm(n = max(sampleSizes), mean = paris$mean$Lat, sd = paris$sd$Lat))
coords_10k <- coordsSample %>% sample_n(10E3)
coords_100k <- coordsSample %>% sample_n(100E3)
coords_250k <- coordsSample %>% sample_n(250E3)
coords_500k <- coordsSample %>% sample_n(500E3)
coords_1M <- coordsSample %>% sample_n(1E6)
coords_2M <- coordsSample %>% sample_n(2E6)
```
# Loading the package
```{r pkgs}
# library(devtools)
# install_github("bhaskarvk/leaflet.extras")
library(leaflet)
library(leaflet.extras)
library(microbenchmark)
```
# Running benchmarks
```{r, eval = FALSE, echo = FALSE}
heat_benchs <- microbenchmark(
heat_10k = leaflet() %>% addHeatmap(data = coords_10k, layerId = "ABC"),
webgl_10k = leaflet() %>% addWebGLHeatmap(data = coords_10k, layerId = "ABC"),
heat_100k = leaflet() %>% addHeatmap(data = coords_100k, layerId = "ABC"),
webgl_100k = leaflet() %>% addWebGLHeatmap(data = coords_100k, layerId = "ABC"),
heat_250k = leaflet() %>% addHeatmap(data = coords_250k, layerId = "ABC"),
webgl_250k = leaflet() %>% addWebGLHeatmap(data = coords_250k, layerId = "ABC"),
heat_500k = leaflet() %>% addHeatmap(data = coords_500k, layerId = "ABC"),
webgl_500k = leaflet() %>% addWebGLHeatmap(data = coords_500k, layerId = "ABC"),
heat_1M = leaflet() %>% addHeatmap(data = coords_1M, layerId = "ABC"),
webgl_1M = leaflet() %>% addWebGLHeatmap(data = coords_1M, layerId = "ABC"),
heat_2M = leaflet() %>% addHeatmap(data = coords_2M, layerId = "ABC"),
webgl_2M = leaflet() %>% addWebGLHeatmap(data = coords_2M, layerId = "ABC"),
times = 100
)
```
# Plotting R benchmarks
```{r, eval = FALSE, echo = FALSE}
library(tidyr)
tidyBenchs <- heat_benchs %>%
as_tibble() %>%
separate(col = "expr", into = c("type", "size")) %>%
mutate(size = gsub(x = size, pattern = "k", replacement = "E3"),
size = gsub(x = size, pattern = "M", replacement = "E6")) %>%
mutate(size = as.numeric(size))
library(ggplot2)
ggplot(tidyBenchs %>% group_by(type, size) %>% summarise(time = mean(time)),
aes(x = size, y = time, group = type, col = type, lty = type)) +
geom_line() +
geom_point()
```
# Saving pages for js profiling
```{r, eval = FALSE}
library(htmlwidgets)
heat_10k <- leaflet() %>% addHeatmap(data = coords_10k, layerId = "ABC")
webgl_10k <- leaflet() %>% addWebGLHeatmap(data = coords_10k, layerId = "ABC")
heat_100k <- leaflet() %>% addHeatmap(data = coords_100k, layerId = "ABC")
webgl_100k <- leaflet() %>% addWebGLHeatmap(data = coords_100k, layerId = "ABC")
heat_250k <- leaflet() %>% addHeatmap(data = coords_250k, layerId = "ABC")
webgl_250k <- leaflet() %>% addWebGLHeatmap(data = coords_250k, layerId = "ABC")
heat_500k <- leaflet() %>% addHeatmap(data = coords_500k, layerId = "ABC")
webgl_500k <- leaflet() %>% addWebGLHeatmap(data = coords_500k, layerId = "ABC")
heat_1M <- leaflet() %>% addHeatmap(data = coords_1M, layerId = "ABC")
webgl_1M <- leaflet() %>% addWebGLHeatmap(data = coords_1M, layerId = "ABC")
heat_2M <- leaflet() %>% addHeatmap(data = coords_2M, layerId = "ABC")
webgl_2M <- leaflet() %>% addWebGLHeatmap(data = coords_2M, layerId = "ABC")
saveWidget(file = "heat_10k.html", widget = heat_10k)
saveWidget(file = "webgl_10k.html", widget = webgl_10k)
saveWidget(file = "heat_100k.html", widget = heat_100k)
saveWidget(file = "webgl_100k.html", widget = webgl_100k)
saveWidget(file = "heat_250k.html", widget = heat_250k)
saveWidget(file = "webgl_250k.html", widget = webgl_250k)
saveWidget(file = "heat_500k.html", widget = heat_500k)
saveWidget(file = "webgl_500k.html", widget = webgl_500k)
# saveWidget(file = "heat_1M.html", widget = heat_1M) # saveWidget crashed from here, so, displaying the widgets in next chunk (1 at a time...) and knitting the Rmd.
# saveWidget(file = "webgl_1M.html", widget = webgl_1M)
# saveWidget(file = "heat_2M.html", widget = heat_2M)
# saveWidget(file = "webgl_2M.html", widget = webgl_2M)
```
```{r, eval = FALSE}
heat_1M
```
# Page load benchmarks
http-server -p 8080 &
wbench http://localhost:8080/heat_10k.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_10k.html -nc >> benchs.txt &&
wbench http://localhost:8080/heat_100k.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_100k.html -nc >> benchs.txt &&
wbench http://localhost:8080/heat_250k.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_250k.html -nc >> benchs.txt &&
wbench http://localhost:8080/heat_500k.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_500k.html -nc >> benchs.txt &&
wbench http://localhost:8080/heat_1M.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_1M.html -nc >> benchs.txt &&
wbench http://localhost:8080/heat_2M.html -nc >> benchs.txt &&
wbench http://localhost:8080/webgl_2M.html -nc >> benchs.txt &&
pkill node
# Page load analysis (after manually editing benchs.txt)
```{r, echo = FALSE}
human_numbers <- function(x = NULL, smbl =""){
humanity <- function(y){
if (!is.na(y)){
b <- plyr::round_any(abs(y) / 1e9, 0.1)
m <- plyr::round_any(abs(y) / 1e6, 0.1)
k <- plyr::round_any(abs(y) / 1e3, 0.1)
if ( y >= 0 ){
y_is_positive <- ""
} else {
y_is_positive <- "-"
}
if ( k < 1 ) {
paste0(y_is_positive, smbl, y )
} else if ( m < 1){
paste0 (y_is_positive, smbl, k , "k")
} else if (b < 1){
paste0 (y_is_positive, smbl, m ,"m")
} else {
paste0 (y_is_positive, smbl, comma(b), "b")
}
}
}
sapply(x,humanity)
}
```
```{r}
library(readr)
library(dplyr)
library(tidyr)
jsBenchmarks <- read_csv2("bench_analysis.txt") %>%
mutate_all(funs(gsub(., pattern = "ms", replacement = ""))) %>%
mutate_at(.cols = vars(-Bench),funs(as.numeric(.))) %>%
separate(col = Bench, into = c("type", "size")) %>%
mutate(size = gsub(x = size, pattern = "k", replacement = "E3"),
size = gsub(x = size, pattern = "M", replacement = "E6")) %>%
mutate(size = as.numeric(size))
ggplot(jsBenchmarks,
aes(size, Median, col = type, lty = type)) +
geom_line() +
geom_point() +
scale_x_continuous(name = "Number of displayed points", labels = human_numbers) +
scale_y_continuous(name = "Median load time (ms)", labels = human_numbers) +
ggtitle("Page load comparison in leaflet.extras :\naddHeatmap() vs addWebGLHeatmap()")
```
Testing http://localhost:8080/heat_10k.html
At Mon Feb 6 16:31:21 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 22ms 24ms 28ms 1ms
Connect Start: 22ms 24ms 28ms 1ms
Domain Lookup End: 22ms 24ms 28ms 1ms
Domain Lookup Start: 22ms 24ms 28ms 1ms
Fetch Start: 22ms 24ms 28ms 1ms
Request Start: 27ms 30ms 34ms 2ms
Response Start: 28ms 31ms 49ms 5ms
DOM Loading: 38ms 43ms 51ms 3ms
Response End: 57ms 64ms 70ms 3ms
DOM Content Loaded Event Start: 214ms 223ms 235ms 6ms
DOM Interactive: 214ms 222ms 234ms 6ms
DOM Complete: 397ms 416ms 428ms 8ms
DOM Content Loaded Event End: 397ms 416ms 428ms 8ms
Load Event End: 397ms 416ms 428ms 8ms
Load Event Start: 397ms 416ms 428ms 8ms
Testing http://localhost:8080/webgl_10k.html
At Mon Feb 6 16:31:50 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 18ms 22ms 26ms 2ms
Connect Start: 18ms 22ms 26ms 2ms
Domain Lookup End: 18ms 22ms 26ms 2ms
Domain Lookup Start: 18ms 22ms 26ms 2ms
Fetch Start: 18ms 22ms 26ms 2ms
Request Start: 22ms 27ms 31ms 3ms
Response Start: 24ms 29ms 33ms 3ms
DOM Loading: 37ms 41ms 50ms 3ms
Response End: 60ms 69ms 188ms 47ms
DOM Content Loaded Event Start: 251ms 264ms 274ms 7ms
DOM Interactive: 251ms 264ms 274ms 7ms
DOM Complete: 473ms 501ms 511ms 12ms
DOM Content Loaded Event End: 472ms 501ms 511ms 12ms
Load Event End: 473ms 501ms 511ms 12ms
Load Event Start: 473ms 501ms 511ms 12ms
Testing http://localhost:8080/heat_100k.html
At Mon Feb 6 16:32:25 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 20ms 25ms 35ms 4ms
Connect Start: 20ms 25ms 35ms 4ms
Domain Lookup End: 20ms 25ms 35ms 4ms
Domain Lookup Start: 20ms 25ms 35ms 4ms
Fetch Start: 20ms 25ms 35ms 4ms
Request Start: 28ms 30ms 42ms 4ms
Response Start: 30ms 33ms 44ms 4ms
DOM Loading: 39ms 50ms 62ms 7ms
Response End: 245ms 262ms 278ms 10ms
DOM Interactive: 258ms 276ms 288ms 10ms
DOM Content Loaded Event Start: 258ms 277ms 289ms 10ms
DOM Complete: 667ms 704ms 726ms 19ms
DOM Content Loaded Event End: 667ms 704ms 726ms 18ms
Load Event End: 667ms 704ms 726ms 18ms
Load Event Start: 667ms 704ms 726ms 18ms
Testing http://localhost:8080/webgl_100k.html
At Mon Feb 6 16:33:49 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 19ms 27ms 36ms 4ms
Connect Start: 19ms 27ms 36ms 4ms
Domain Lookup End: 19ms 27ms 36ms 4ms
Domain Lookup Start: 19ms 27ms 36ms 4ms
Fetch Start: 19ms 27ms 36ms 4ms
Request Start: 27ms 31ms 40ms 4ms
Response Start: 29ms 36ms 41ms 4ms
DOM Loading: 35ms 45ms 54ms 5ms
Response End: 280ms 298ms 305ms 7ms
DOM Interactive: 291ms 308ms 318ms 7ms
DOM Content Loaded Event Start: 292ms 308ms 319ms 7ms
DOM Content Loaded Event End: 1184ms 1212ms 1331ms 54ms
DOM Complete: 1184ms 1212ms 1332ms 54ms
Load Event End: 1184ms 1213ms 1332ms 54ms
Load Event Start: 1184ms 1213ms 1332ms 54ms
Testing http://localhost:8080/heat_250k.html
At Mon Feb 6 16:34:29 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 24ms 28ms 30ms 1ms
Connect Start: 24ms 28ms 30ms 1ms
Domain Lookup End: 24ms 28ms 30ms 1ms
Domain Lookup Start: 24ms 28ms 30ms 1ms
Fetch Start: 24ms 28ms 30ms 1ms
Request Start: 29ms 32ms 38ms 2ms
Response Start: 31ms 34ms 40ms 2ms
DOM Loading: 38ms 43ms 50ms 3ms
Response End: 304ms 322ms 330ms 6ms
DOM Interactive: 316ms 333ms 344ms 7ms
DOM Content Loaded Event Start: 318ms 334ms 345ms 7ms
DOM Complete: 1068ms 1104ms 1140ms 19ms
DOM Content Loaded Event End: 1067ms 1104ms 1140ms 19ms
Load Event End: 1068ms 1104ms 1140ms 19ms
Load Event Start: 1068ms 1104ms 1140ms 19ms
Testing http://localhost:8080/webgl_250k.html
At Mon Feb 6 16:35:07 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 20ms 24ms 33ms 4ms
Connect Start: 20ms 24ms 33ms 4ms
Domain Lookup End: 20ms 24ms 33ms 4ms
Domain Lookup Start: 20ms 24ms 33ms 4ms
Fetch Start: 20ms 24ms 33ms 4ms
Request Start: 24ms 31ms 38ms 4ms
Response Start: 26ms 33ms 39ms 4ms
DOM Loading: 37ms 44ms 54ms 5ms
Response End: 351ms 359ms 379ms 7ms
DOM Interactive: 363ms 373ms 391ms 7ms
DOM Content Loaded Event Start: 364ms 374ms 393ms 7ms
DOM Content Loaded Event End: 2585ms 2651ms 2667ms 22ms
DOM Complete: 2585ms 2652ms 2668ms 23ms
Load Event End: 2585ms 2652ms 2668ms 23ms
Load Event Start: 2585ms 2652ms 2668ms 23ms
Testing http://localhost:8080/heat_500k.html
At Mon Feb 6 16:45:22 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 17ms 25ms 30ms 3ms
Connect Start: 17ms 25ms 30ms 3ms
Domain Lookup End: 17ms 25ms 30ms 3ms
Domain Lookup Start: 17ms 25ms 30ms 3ms
Fetch Start: 17ms 25ms 30ms 3ms
Request Start: 20ms 31ms 35ms 3ms
Response Start: 22ms 33ms 43ms 5ms
DOM Loading: 37ms 44ms 55ms 4ms
Response End: 412ms 428ms 448ms 10ms
DOM Interactive: 426ms 444ms 465ms 10ms
DOM Content Loaded Event Start: 429ms 445ms 467ms 10ms
DOM Complete: 1768ms 1801ms 1828ms 18ms
DOM Content Loaded Event End: 1767ms 1801ms 1828ms 18ms
Load Event End: 1768ms 1801ms 1828ms 18ms
Load Event Start: 1768ms 1801ms 1828ms 18ms
Testing http://localhost:8080/webgl_500k.html
At Mon Feb 6 16:46:12 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 18ms 25ms 40ms 5ms
Connect Start: 18ms 25ms 40ms 5ms
Domain Lookup End: 18ms 25ms 40ms 5ms
Domain Lookup Start: 18ms 25ms 40ms 5ms
Fetch Start: 18ms 25ms 40ms 5ms
Request Start: 21ms 29ms 46ms 6ms
Response Start: 24ms 31ms 60ms 9ms
DOM Loading: 33ms 44ms 67ms 10ms
Response End: 444ms 475ms 489ms 11ms
DOM Interactive: 458ms 488ms 505ms 12ms
DOM Content Loaded Event Start: 460ms 490ms 506ms 12ms
DOM Complete: 4926ms 4955ms 4980ms 12ms
DOM Content Loaded Event End: 4926ms 4955ms 4979ms 12ms
Load Event End: 4926ms 4955ms 4980ms 13ms
Load Event Start: 4926ms 4955ms 4980ms 13ms
Testing http://localhost:8080/heat_1M.html
At Mon Feb 6 16:47:35 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
cdn.mathjax.org:443 3ms 3ms 19ms 5ms
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 20ms 24ms 26ms 1ms
Connect Start: 20ms 24ms 26ms 1ms
Domain Lookup End: 20ms 24ms 26ms 1ms
Domain Lookup Start: 20ms 24ms 26ms 1ms
Fetch Start: 20ms 24ms 26ms 1ms
Request Start: 23ms 30ms 31ms 2ms
Response Start: 25ms 32ms 33ms 2ms
DOM Loading: 37ms 44ms 58ms 6ms
Response End: 801ms 826ms 846ms 17ms
DOM Interactive: 819ms 847ms 868ms 17ms
DOM Content Loaded Event Start: 824ms 850ms 872ms 17ms
DOM Content Loaded Event End: 3413ms 3467ms 3604ms 53ms
DOM Complete: 3539ms 3604ms 3727ms 49ms
Load Event Start: 3539ms 3604ms 3727ms 49ms
Load Event End: 3541ms 3606ms 3728ms 49ms
Testing http://localhost:8080/webgl_1M.html
At Mon Feb 6 16:48:46 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
cdn.mathjax.org:443 3ms 3ms 17ms 4ms
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 16ms 22ms 31ms 4ms
Connect Start: 16ms 22ms 31ms 4ms
Domain Lookup End: 16ms 22ms 31ms 4ms
Domain Lookup Start: 16ms 22ms 31ms 4ms
Fetch Start: 16ms 22ms 31ms 4ms
Request Start: 20ms 28ms 35ms 4ms
Response Start: 23ms 31ms 38ms 4ms
DOM Loading: 39ms 48ms 63ms 6ms
Response End: 859ms 899ms 922ms 23ms
DOM Interactive: 878ms 917ms 941ms 24ms
DOM Content Loaded Event Start: 882ms 921ms 945ms 24ms
DOM Content Loaded Event End: 10038ms 10354ms 10389ms 138ms
DOM Complete: 10180ms 10540ms 10574ms 154ms
Load Event Start: 10180ms 10541ms 10574ms 154ms
Load Event End: 10182ms 10543ms 10575ms 154ms
Testing http://localhost:8080/heat_2M.html
At Mon Feb 6 16:52:24 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
cdn.mathjax.org:443 3ms 3ms 11ms 2ms
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 19ms 24ms 32ms 4ms
Connect Start: 19ms 24ms 32ms 4ms
Domain Lookup End: 19ms 24ms 32ms 4ms
Domain Lookup Start: 19ms 24ms 32ms 4ms
Fetch Start: 19ms 24ms 32ms 4ms
Request Start: 22ms 29ms 36ms 4ms
Response Start: 24ms 35ms 41ms 4ms
DOM Loading: 40ms 45ms 55ms 4ms
Response End: 1219ms 1255ms 1303ms 26ms
DOM Interactive: 1248ms 1289ms 1335ms 27ms
DOM Content Loaded Event Start: 1256ms 1297ms 1344ms 27ms
DOM Content Loaded Event End: 6352ms 6430ms 6545ms 63ms
DOM Complete: 6478ms 6550ms 6667ms 64ms
Load Event Start: 6478ms 6550ms 6667ms 64ms
Load Event End: 6479ms 6552ms 6669ms 64ms
Testing http://localhost:8080/webgl_2M.html
At Mon Feb 6 16:54:03 2017
10 loops
Fastest Median Slowest Std Dev
---------------------------------------------------------------------------
Server performance:
Total application time Unable to be recorded
Host latency:
cdn.mathjax.org:443 3ms 3ms 4ms 0ms
localhost:8080 0ms 0ms 0ms 0ms
Browser performance:
Navigation Start: 0ms 0ms 0ms 0ms
Connect End: 17ms 23ms 30ms 3ms
Connect Start: 17ms 23ms 30ms 3ms
Domain Lookup End: 17ms 23ms 30ms 3ms
Domain Lookup Start: 17ms 23ms 30ms 3ms
Fetch Start: 17ms 23ms 30ms 3ms
Request Start: 21ms 28ms 37ms 4ms
Response Start: 23ms 32ms 39ms 4ms
DOM Loading: 36ms 51ms 56ms 7ms
Response End: 1245ms 1276ms 1341ms 27ms
DOM Interactive: 1275ms 1309ms 1375ms 27ms
DOM Content Loaded Event Start: 1282ms 1316ms 1383ms 27ms
DOM Content Loaded Event End: 19182ms 20141ms 20281ms 367ms
DOM Complete: 19313ms 20363ms 20513ms 389ms
Load Event Start: 19314ms 20363ms 20513ms 389ms
Load Event End: 19315ms 20365ms 20514ms 389ms
expr time
heat_1M 91798898.0
heat_10k 2434459.0
heat_250k 24478987.0
webgl_2M 352987427.0
webgl_10k 2810198.0
heat_500k 49994687.0
webgl_2M 281330926.0
webgl_500k 46751394.0
heat_10k 2875177.0
heat_2M 281011332.0
heat_100k 11641757.0
webgl_500k 39211587.0
heat_250k 21840451.0
webgl_2M 230442611.0
heat_100k 8632152.0
heat_100k 9545200.0
webgl_10k 3403612.0
webgl_1M 70377591.0
heat_1M 80035574.0
heat_10k 2557639.0
heat_500k 139619829.0
webgl_250k 21028170.0
heat_1M 106339329.0
webgl_250k 21588317.0
heat_2M 186402499.0
heat_250k 18624253.0
heat_1M 72206511.0
webgl_500k 41167805.0
heat_100k 8637787.0
webgl_1M 70487030.0
heat_250k 21211578.0
heat_500k 38590640.0
webgl_100k 8604829.0
webgl_2M 141521745.0
webgl_1M 189577611.0
heat_2M 241997516.0
heat_100k 8667026.0
webgl_500k 38181985.0
heat_250k 21104573.0
webgl_10k 2878933.0
heat_2M 164257987.0
heat_500k 124962172.0
heat_1M 79998130.0
heat_1M 102628355.0
webgl_100k 8748751.0
heat_2M 173582354.0
webgl_250k 22155597.0
heat_250k 19145306.0
webgl_250k 21691893.0
heat_500k 39196516.0
webgl_2M 227294286.0
heat_2M 232602841.0
heat_10k 2547084.0
webgl_250k 18308391.0
heat_10k 2532466.0
heat_2M 239231285.0
webgl_100k 8617636.0
webgl_1M 71434096.0
webgl_100k 11713557.0
webgl_1M 70766516.0
heat_100k 11218826.0
heat_500k 38169729.0
heat_100k 8637350.0
heat_1M 155554445.0
webgl_500k 38222316.0
heat_100k 8730999.0
webgl_10k 2536836.0
heat_500k 37851471.0
webgl_250k 18564089.0
webgl_250k 21435985.0
webgl_10k 2848016.0
heat_1M 71336221.0
webgl_10k 2462188.0
heat_250k 25215095.0
webgl_10k 2794914.0
webgl_500k 49797433.0
webgl_500k 47481960.0
heat_100k 8650854.0
webgl_1M 74842729.0
heat_250k 19290339.0
heat_500k 38830263.0
heat_1M 77329980.0
heat_2M 226152758.0
webgl_500k 126822527.0
heat_100k 8796954.0
heat_2M 172491468.0
heat_10k 2483245.0
heat_10k 2432051.0
webgl_100k 8559631.0
heat_250k 24155789.0
webgl_2M 191220764.0
webgl_100k 8880192.0
webgl_10k 2423470.0
webgl_100k 8779859.0
heat_10k 2434783.0
webgl_2M 294668274.0
webgl_2M 152597358.0
webgl_500k 39001758.0
webgl_1M 71023583.0
webgl_500k 40875707.0
heat_10k 2649091.0
heat_10k 2387891.0
webgl_1M 70115649.0
webgl_1M 70976462.0
webgl_1M 215795903.0
webgl_10k 2734264.0
heat_2M 195639895.0
heat_100k 8807716.0
webgl_2M 157603140.0
webgl_100k 9051179.0
webgl_100k 8850534.0
heat_100k 9299715.0
webgl_1M 79235610.0
webgl_10k 2996495.0
webgl_2M 246827098.0
heat_1M 111112045.0
webgl_100k 9356565.0
heat_500k 50903025.0
heat_100k 9796987.0
webgl_2M 305727008.0
heat_500k 64662409.0
heat_100k 13342297.0
heat_2M 232571375.0
webgl_1M 105652239.0
heat_500k 41824664.0
heat_250k 21474237.0
webgl_500k 47112490.0
webgl_250k 20528389.0
webgl_100k 9521747.0
heat_10k 2615997.0
heat_2M 242511609.0
webgl_100k 8699177.0
webgl_500k 37865230.0
webgl_250k 21581572.0
webgl_250k 28912306.0
webgl_1M 186606745.0
heat_2M 150582837.0
webgl_2M 227667092.0
webgl_500k 39215880.0
heat_500k 37624564.0
webgl_500k 38939944.0
webgl_500k 35335419.0
heat_500k 37682779.0
webgl_1M 72881844.0
webgl_2M 242657520.0
heat_1M 102450871.0
heat_250k 21864230.0
webgl_100k 8903858.0
webgl_10k 2544112.0
heat_1M 73003754.0
webgl_2M 204354794.0
heat_2M 270578105.0
heat_10k 2627853.0
heat_500k 123086369.0
heat_500k 35169154.0
webgl_100k 11199655.0
webgl_100k 8753671.0
webgl_500k 35310606.0
webgl_100k 8837791.0
heat_1M 71177598.0
webgl_10k 2491806.0
webgl_2M 142267966.0
webgl_10k 2421999.0
webgl_500k 37385247.0
heat_10k 2795413.0
heat_250k 20959791.0
webgl_100k 8633891.0
heat_10k 2731636.0
webgl_1M 70414237.0
webgl_10k 10997670.0
heat_10k 2530204.0
heat_1M 112572990.0
heat_10k 2922606.0
heat_500k 34921859.0
heat_250k 23220556.0
webgl_2M 160249891.0
heat_100k 8894549.0
webgl_2M 259313949.0
webgl_250k 18466527.0
heat_250k 21296281.0
heat_100k 8618299.0
webgl_10k 2587567.0
heat_1M 69935356.0
webgl_100k 100858441.0
webgl_250k 18576301.0
webgl_10k 2757140.0
webgl_250k 21388658.0
webgl_100k 13010168.0
webgl_10k 2627586.0
heat_1M 90824102.0
heat_10k 2793333.0
webgl_1M 80836348.0
webgl_1M 70127838.0
heat_100k 8873956.0
heat_10k 2445434.0
webgl_2M 137992287.0
webgl_10k 2442521.0
heat_100k 8515054.0
heat_1M 72916367.0
heat_2M 226038334.0
webgl_500k 37897970.0
heat_10k 2919566.0
webgl_2M 275437922.0
webgl_1M 80935503.0
webgl_250k 21194974.0
heat_1M 73854306.0
heat_250k 21289644.0
heat_250k 21399838.0
webgl_250k 21385095.0
webgl_10k 2993157.0
webgl_10k 2566560.0
webgl_500k 38176524.0
webgl_2M 277235203.0
heat_500k 126904420.0
webgl_2M 140638071.0
heat_10k 2639003.0
heat_100k 8751736.0
webgl_2M 241624830.0
heat_250k 18440077.0
webgl_100k 8507360.0
heat_2M 248993602.0
webgl_500k 51555749.0
webgl_10k 2558940.0
webgl_10k 2476309.0
heat_2M 232403536.0
heat_2M 242555499.0
heat_2M 140428022.0
heat_1M 72478614.0
heat_100k 98580589.0
heat_10k 2687746.0
heat_10k 2463003.0
heat_250k 18357624.0
webgl_2M 247008018.0
webgl_10k 2452752.0
webgl_2M 137980486.0
webgl_250k 21572132.0
heat_100k 8638387.0
heat_2M 152699316.0
heat_500k 41521333.0
heat_250k 21578807.0
heat_250k 21000325.0
heat_10k 2633960.0
heat_1M 73080509.0
webgl_2M 248363258.0
heat_100k 8880439.0
webgl_2M 240776216.0
webgl_250k 18409165.0
webgl_250k 20805402.0
heat_1M 72119313.0
heat_1M 74572355.0
webgl_10k 2585402.0
heat_2M 228015320.0
webgl_500k 38003040.0
webgl_100k 8784771.0
heat_1M 71776473.0
webgl_2M 235231102.0
heat_10k 2769339.0
heat_250k 19466358.0
heat_100k 9118454.0
heat_500k 38016813.0
webgl_10k 2614228.0
webgl_10k 2445202.0
heat_2M 271218355.0
webgl_100k 9777127.0
heat_100k 13427309.0
webgl_10k 8927841.0
webgl_100k 8464649.0
webgl_500k 52130525.0
webgl_1M 95193841.0
webgl_2M 157708819.0
heat_1M 154373494.0
webgl_100k 11749291.0
webgl_2M 136133247.0
webgl_250k 21445758.0
webgl_500k 51688711.0
webgl_10k 2796050.0
heat_100k 11033619.0
webgl_500k 57852209.0
webgl_100k 8980208.0
webgl_500k 35665748.0
heat_2M 157470435.0
webgl_100k 8834480.0
webgl_500k 48728087.0
heat_250k 22695693.0
webgl_100k 9013760.0
webgl_2M 232340469.0
webgl_1M 70836313.0
webgl_100k 8525927.0
webgl_500k 41138544.0
heat_1M 72846413.0
webgl_1M 70488317.0
webgl_2M 238599050.0
webgl_1M 71637105.0
heat_10k 2469368.0
webgl_250k 20826401.0
webgl_1M 72060027.0
heat_100k 8783648.0
heat_2M 228259369.0
heat_100k 8457030.0
heat_10k 2505229.0
heat_1M 70574228.0
webgl_1M 72900601.0
heat_500k 37970261.0
webgl_250k 21149757.0
webgl_1M 165509220.0
heat_500k 39992971.0
webgl_1M 72787478.0
heat_2M 147240459.0
heat_10k 2610519.0
heat_500k 37443865.0
heat_500k 38370495.0
webgl_250k 21547773.0
heat_500k 35642282.0
webgl_250k 21435271.0
heat_2M 250212107.0
webgl_500k 37745993.0
heat_10k 2531447.0
heat_500k 38030733.0
webgl_1M 157158364.0
webgl_100k 8437342.0
heat_500k 35290450.0
webgl_100k 8516588.0
heat_100k 10965537.0
heat_1M 74336900.0
webgl_250k 18565702.0
webgl_500k 38151722.0
webgl_2M 162905461.0
heat_2M 161912388.0
heat_10k 2486761.0
heat_250k 21247466.0
heat_2M 250942750.0
webgl_10k 2410961.0
webgl_250k 18575879.0
webgl_500k 42906817.0
heat_10k 2440717.0
heat_2M 281544586.0
webgl_500k 45157031.0
webgl_100k 8587834.0
heat_1M 81956208.0
webgl_2M 151485763.0
heat_250k 106017271.0
webgl_1M 69393485.0
webgl_250k 19074616.0
webgl_2M 141265983.0
webgl_100k 8763056.0
heat_2M 166897713.0
webgl_1M 156824539.0
webgl_10k 2451053.0
webgl_10k 2336603.0
webgl_1M 67938528.0
heat_2M 146999213.0
heat_500k 37680970.0
webgl_500k 37630931.0
webgl_1M 70656609.0
heat_250k 21612237.0
webgl_2M 274468466.0
webgl_2M 243618078.0
webgl_250k 18375551.0
webgl_100k 11079254.0
webgl_250k 18707767.0
heat_2M 153653038.0
heat_250k 21081645.0
heat_250k 21031065.0
webgl_1M 70504266.0
heat_10k 2396975.0
webgl_250k 20749570.0
webgl_500k 40798792.0
webgl_1M 152098811.0
heat_2M 144210368.0
webgl_10k 2644265.0
webgl_100k 8373886.0
heat_2M 288158975.0
heat_10k 2693458.0
heat_250k 21890532.0
heat_500k 45521915.0
heat_1M 114974081.0
heat_250k 18608915.0
heat_1M 78761340.0
webgl_500k 38189287.0
heat_1M 73408829.0
heat_500k 38180449.0
heat_100k 8727008.0
webgl_1M 77441571.0
heat_500k 44103465.0
heat_100k 9788452.0
webgl_250k 18655420.0
heat_500k 38848959.0
heat_10k 2579593.0
webgl_100k 8569635.0
heat_10k 2500781.0
webgl_2M 239290065.0
heat_100k 8556490.0
webgl_500k 37899537.0
webgl_10k 2542106.0
heat_500k 129575118.0
heat_2M 202547535.0
webgl_2M 180467582.0
heat_500k 46139250.0
webgl_500k 48502158.0
heat_500k 52056549.0
heat_500k 35280320.0
webgl_250k 21164804.0
webgl_500k 35341758.0
webgl_2M 160925239.0
webgl_250k 18443957.0
heat_500k 40746884.0
webgl_1M 72789109.0
heat_500k 38092707.0
webgl_250k 21111462.0
webgl_100k 8554943.0
heat_500k 39798129.0
webgl_100k 11774564.0
webgl_2M 226789935.0
heat_2M 227536495.0
webgl_2M 174997150.0
heat_10k 2463929.0
heat_10k 2352690.0
webgl_500k 38519124.0
webgl_10k 2804596.0
heat_2M 224571512.0
heat_250k 18412105.0
webgl_10k 2653855.0
webgl_250k 23745659.0
heat_500k 38003197.0
heat_500k 40396230.0
heat_250k 22583986.0
webgl_250k 21016087.0
webgl_100k 12058364.0
webgl_10k 3796814.0
heat_500k 42482149.0
heat_10k 3003397.0
webgl_10k 2719058.0
webgl_2M 152525484.0
heat_100k 8820287.0
heat_1M 75535174.0
webgl_100k 96392095.0
heat_250k 18635494.0
heat_500k 35822005.0
webgl_250k 21343912.0
heat_10k 2519646.0
heat_250k 18415484.0
webgl_250k 18682345.0
webgl_500k 129591729.0
webgl_100k 10463373.0
heat_500k 57711063.0
heat_10k 2884284.0
heat_250k 33162462.0
heat_500k 52704813.0
heat_10k 2612270.0
webgl_1M 82235378.0
webgl_250k 21349737.0
webgl_250k 18603859.0
webgl_100k 9579844.0
webgl_100k 8522840.0
webgl_250k 21187870.0
webgl_10k 2683799.0
heat_500k 40213470.0
webgl_250k 18753009.0
webgl_10k 2531169.0
webgl_1M 79028511.0
heat_1M 71213776.0
webgl_500k 38124062.0
heat_250k 18748304.0
webgl_1M 71436108.0
webgl_250k 21034173.0
heat_100k 8698077.0
heat_250k 21078713.0
heat_100k 8660502.0
webgl_2M 141704482.0
webgl_250k 22839764.0
webgl_1M 71927090.0
heat_10k 2701527.0
heat_10k 2510860.0
webgl_500k 38680689.0
heat_1M 73718586.0
heat_500k 122755158.0
webgl_100k 8816584.0
heat_2M 138409609.0
heat_2M 135284475.0
webgl_250k 20911946.0
webgl_2M 160665502.0
webgl_10k 2496442.0
heat_100k 8397224.0
heat_250k 21755060.0
heat_10k 2620708.0
heat_100k 8479232.0
heat_100k 13121244.0
webgl_100k 8609715.0
webgl_250k 18450573.0
webgl_250k 18812423.0
webgl_250k 30129826.0
webgl_2M 141757963.0
webgl_500k 45104249.0
webgl_1M 113651185.0
webgl_500k 36633305.0
heat_2M 171937987.0
webgl_500k 38540044.0
webgl_1M 71174e3
heat_1M 165995460.0
heat_1M 68235031.0
heat_1M 71968431.0
heat_2M 150000479.0
heat_10k 2449039.0
heat_10k 2268225.0
heat_10k 2321193.0
heat_1M 71339672.0
heat_250k 20939151.0
heat_1M 70776918.0
webgl_250k 21271599.0
webgl_10k 2544912.0
heat_100k 8715043.0
heat_500k 37843169.0
webgl_1M 72913019.0
heat_1M 73449387.0
heat_100k 101428666.0
webgl_100k 8667438.0
webgl_10k 2584707.0
webgl_2M 195289354.0
heat_250k 25855940.0
webgl_250k 23770802.0
heat_100k 12304883.0
webgl_2M 221397787.0
heat_250k 27268426.0
heat_1M 77602857.0
webgl_1M 70796560.0
webgl_500k 37716981.0
webgl_100k 9034005.0
webgl_500k 38395495.0
webgl_10k 2603618.0
webgl_10k 2423125.0
heat_10k 2437185.0
heat_10k 2433249.0
heat_100k 8346881.0
webgl_1M 71444010.0
webgl_250k 18495003.0
heat_10k 2513681.0
webgl_2M 160593312.0
heat_2M 284213750.0
heat_500k 127425871.0
heat_1M 67560854.0
heat_100k 8619844.0
webgl_1M 69680560.0
webgl_500k 42672224.0
heat_1M 67832320.0
heat_2M 168643515.0
heat_250k 23808166.0
webgl_1M 84668706.0
heat_1M 71582265.0
webgl_2M 239570727.0
heat_2M 226566020.0
webgl_1M 72064475.0
heat_10k 2507416.0
webgl_500k 37807429.0
heat_500k 37399135.0
heat_500k 40979331.0
heat_250k 21175482.0
heat_250k 18647047.0
heat_250k 18704337.0
webgl_100k 11252058.0
webgl_250k 18402056.0
webgl_1M 70193499.0
heat_250k 21032064.0
heat_500k 37868762.0
heat_1M 71820453.0
heat_500k 129648688.0
webgl_100k 8417015.0
webgl_2M 199652215.0
heat_2M 145980684.0
webgl_100k 8680814.0
webgl_500k 52498861.0
webgl_250k 18584103.0
webgl_250k 22692957.0
webgl_1M 79843565.0
heat_2M 287329754.0
heat_2M 231993232.0
heat_1M 71536845.0
heat_250k 20928630.0
heat_250k 18648083.0
webgl_100k 8928927.0
heat_1M 72632262.0
heat_1M 74821420.0
heat_250k 107214588.0
webgl_1M 68247223.0
webgl_2M 170626879.0
heat_10k 2457602.0
heat_100k 8418695.0
heat_10k 2417218.0
heat_1M 70059695.0
heat_250k 21008791.0
heat_250k 22472300.0
webgl_250k 20141366.0
webgl_250k 19738114.0
webgl_250k 22143202.0
webgl_500k 39077277.0
webgl_10k 2577868.0
heat_1M 162145320.0
webgl_10k 2478685.0
webgl_2M 189569490.0
heat_2M 266543041.0
heat_500k 47777717.0
webgl_2M 201781972.0
heat_10k 2582023.0
webgl_100k 9531304.0
webgl_2M 310589124.0
heat_1M 176349720.0
webgl_500k 39470164.0
webgl_10k 2995890.0
webgl_1M 82188509.0
webgl_500k 38992301.0
heat_250k 21380292.0
heat_1M 69690836.0
webgl_500k 40395517.0
webgl_100k 9101448.0
heat_2M 216231732.0
webgl_500k 43538080.0
webgl_1M 78274044.0
webgl_250k 113421404.0
webgl_2M 278492872.0
heat_100k 9327125.0
heat_1M 73690439.0
webgl_100k 8874005.0
webgl_100k 11606690.0
heat_250k 19356826.0
webgl_1M 71105451.0
heat_2M 236302773.0
heat_500k 37869919.0
webgl_2M 259950641.0
heat_500k 40532748.0
webgl_2M 144316020.0
heat_1M 74269394.0
heat_250k 105569501.0
heat_250k 19070963.0
webgl_250k 19546167.0
heat_100k 9143726.0
heat_1M 70553730.0
webgl_1M 73168340.0
heat_10k 2642632.0
webgl_10k 2457634.0
webgl_10k 2478200.0
heat_500k 37592695.0
heat_500k 45134502.0
heat_2M 271533059.0
heat_100k 8485406.0
webgl_2M 240721730.0
webgl_100k 8687760.0
heat_1M 70462885.0
webgl_10k 2901870.0
webgl_1M 72854809.0
heat_2M 262198393.0
heat_500k 129340627.0
webgl_100k 8384343.0
heat_100k 8427021.0
webgl_1M 111250063.0
heat_100k 9583462.0
webgl_2M 159533089.0
webgl_100k 8713793.0
webgl_2M 143228909.0
heat_250k 111591606.0
heat_10k 2635074.0
webgl_2M 205853022.0
webgl_100k 8703553.0
heat_10k 2473556.0
heat_100k 8353008.0
heat_100k 8383523.0
heat_100k 8506352.0
heat_100k 8532024.0
heat_100k 11057314.0
webgl_100k 8729548.0
heat_2M 231705015.0
webgl_10k 2643029.0
heat_1M 70924681.0
heat_1M 72449771.0
webgl_10k 2447443.0
heat_100k 8393364.0
webgl_100k 8504305.0
webgl_100k 11089479.0
heat_250k 18488284.0
webgl_500k 37566283.0
heat_1M 72782016.0
heat_2M 230942796.0
webgl_1M 69988719.0
heat_1M 169534050.0
heat_2M 193614305.0
webgl_250k 26203711.0
webgl_10k 2671725.0
webgl_250k 27742862.0
webgl_2M 179396786.0
webgl_1M 67537035.0
heat_1M 78850947.0
heat_500k 38178737.0
webgl_100k 11095194.0
webgl_500k 38007275.0
heat_500k 35250170.0
webgl_10k 2830307.0
heat_1M 70633195.0
webgl_10k 2512472.0
heat_2M 235301211.0
heat_250k 18445817.0
webgl_250k 18446921.0
webgl_10k 2616055.0
webgl_10k 2273446.0
heat_250k 20859481.0
heat_2M 226852716.0
heat_2M 230179110.0
webgl_1M 91516175.0
webgl_2M 234515204.0
heat_1M 80418221.0
webgl_500k 42320249.0
webgl_1M 77207165.0
webgl_10k 2751766.0
webgl_10k 3393054.0
webgl_10k 2702513.0
heat_2M 272846776.0
webgl_500k 43382217.0
heat_2M 158817261.0
heat_100k 11082902.0
heat_250k 19284210.0
heat_250k 21100648.0
heat_1M 157759052.0
heat_100k 8730512.0
heat_2M 170511023.0
webgl_250k 22581724.0
heat_1M 80250024.0
webgl_1M 73821654.0
webgl_500k 41273051.0
webgl_250k 23442259.0
heat_100k 10094886.0
webgl_250k 23199671.0
heat_2M 241234632.0
webgl_1M 72157065.0
heat_1M 73431924.0
heat_2M 230490753.0
heat_2M 238322636.0
webgl_2M 235316983.0
webgl_250k 18825774.0
webgl_250k 21063381.0
webgl_2M 230024519.0
webgl_1M 106094677.0
heat_10k 2554465.0
heat_2M 267268609.0
heat_500k 38082825.0
heat_2M 253994426.0
webgl_500k 46720076.0
webgl_2M 238915804.0
webgl_10k 2447878.0
webgl_100k 10996522.0
webgl_1M 76177215.0
heat_1M 77118349.0
heat_100k 8520675.0
webgl_2M 272073775.0
webgl_500k 38113504.0
heat_250k 19664123.0
heat_2M 283480894.0
webgl_500k 43178220.0
heat_2M 255461325.0
webgl_10k 2867152.0
heat_250k 19581430.0
webgl_250k 22825021.0
webgl_2M 242290106.0
webgl_100k 8732475.0
heat_10k 2535671.0
webgl_1M 70019713.0
webgl_100k 11093686.0
webgl_1M 166840563.0
heat_500k 52312270.0
heat_2M 156231195.0
heat_10k 2683928.0
webgl_1M 74509261.0
heat_10k 3020595.0
webgl_10k 2457430.0
heat_1M 73696996.0
webgl_10k 2677280.0
webgl_100k 8371440.0
heat_500k 39857796.0
heat_10k 2971213.0
webgl_1M 78080690.0
webgl_500k 43398519.0
heat_100k 8615288.0
heat_500k 40815221.0
heat_250k 112016878.0
heat_2M 202647037.0
heat_2M 205182993.0
webgl_2M 143314050.0
webgl_1M 70420821.0
heat_10k 2597035.0
heat_1M 73029430.0
heat_2M 282330394.0
webgl_500k 47392366.0
webgl_100k 8803957.0
heat_250k 18541910.0
webgl_250k 21218516.0
webgl_1M 79808938.0
webgl_500k 42904098.0
heat_10k 2510849.0
webgl_250k 111608108.0
heat_100k 8902083.0
webgl_1M 109005820.0
heat_10k 2601462.0
webgl_500k 35753849.0
webgl_1M 84119811.0
heat_10k 2514063.0
webgl_500k 37678219.0
webgl_250k 23346553.0
webgl_500k 42597606.0
webgl_10k 3156548.0
heat_1M 104777461.0
heat_500k 39296147.0
webgl_500k 43977094.0
heat_100k 10167774.0
webgl_1M 72867056.0
heat_250k 27363354.0
heat_100k 12393029.0
heat_1M 121015810.0
heat_500k 62621091.0
heat_500k 39989041.0
webgl_500k 38903669.0
heat_2M 151803692.0
webgl_2M 189372744.0
heat_250k 18890059.0
heat_500k 40922240.0
heat_1M 77971060.0
heat_2M 266148881.0
webgl_1M 73480936.0
heat_100k 9376723.0
heat_500k 39045771.0
heat_500k 40173306.0
webgl_1M 73823926.0
heat_1M 70252256.0
webgl_10k 2480321.0
webgl_10k 2453049.0
webgl_10k 2744390.0
heat_250k 19463157.0
heat_100k 8673767.0
webgl_10k 3143929.0
webgl_1M 78988685.0
webgl_250k 24546406.0
heat_10k 2941914.0
webgl_250k 18389143.0
heat_1M 73973611.0
heat_500k 38105832.0
heat_2M 138811540.0
webgl_100k 10378253.0
webgl_10k 4439578.0
webgl_100k 14999989.0
webgl_10k 2586312.0
webgl_250k 19452360.0
heat_100k 12224563.0
webgl_250k 27667125.0
webgl_500k 136952526.0
heat_250k 18636149.0
webgl_1M 109320266.0
heat_100k 9590953.0
heat_10k 2672949.0
webgl_2M 152590118.0
heat_2M 226930527.0
webgl_100k 8724649.0
webgl_10k 2498178.0
heat_2M 251895968.0
webgl_500k 38820796.0
heat_1M 82214068.0
webgl_500k 140261300.0
webgl_500k 57669495.0
heat_100k 15174165.0
heat_250k 23882104.0
webgl_10k 3477616.0
webgl_250k 31579614.0
webgl_10k 2688995.0
webgl_250k 29987089.0
webgl_250k 21586016.0
heat_100k 8560825.0
webgl_2M 142563216.0
webgl_100k 8654829.0
webgl_100k 8491264.0
heat_500k 41769702.0
webgl_2M 194499497.0
heat_250k 18721997.0
heat_250k 27252676.0
webgl_10k 2675609.0
webgl_1M 113844488.0
heat_10k 2904039.0
webgl_10k 3264285.0
heat_500k 39857548.0
heat_250k 21545724.0
webgl_100k 8873507.0
webgl_10k 2602089.0
webgl_100k 9131662.0
webgl_250k 19036431.0
webgl_1M 70584891.0
webgl_100k 9528747.0
webgl_2M 166134546.0
heat_10k 2566461.0
heat_250k 20815811.0
heat_1M 71425080.0
webgl_2M 224592536.0
webgl_100k 8727436.0
heat_100k 8500714.0
heat_500k 48257613.0
heat_1M 105691692.0
webgl_2M 247346800.0
webgl_1M 74286510.0
heat_1M 76060319.0
heat_250k 113125475.0
heat_500k 38615131.0
heat_2M 181299557.0
heat_500k 38552783.0
webgl_1M 126854107.0
heat_500k 36969979.0
heat_1M 77464961.0
webgl_2M 148848745.0
heat_500k 38221965.0
webgl_250k 21486164.0
heat_1M 74221540.0
heat_100k 8665703.0
heat_10k 2486862.0
heat_500k 44571784.0
heat_500k 44274868.0
heat_2M 282507643.0
webgl_2M 270414203.0
webgl_250k 18718944.0
webgl_100k 10969744.0
heat_10k 2613635.0
webgl_250k 18564234.0
heat_100k 11832799.0
heat_100k 9499289.0
webgl_10k 2904347.0
heat_100k 9070068.0
webgl_100k 9642436.0
heat_1M 71212361.0
webgl_1M 76132627.0
webgl_500k 39419685.0
webgl_500k 43143717.0
heat_100k 8869486.0
heat_250k 20898866.0
webgl_2M 230519792.0
webgl_250k 111621430.0
heat_10k 2880763.0
heat_250k 18415034.0
heat_250k 23359929.0
heat_10k 2573771.0
webgl_1M 98607052.0
heat_100k 8735434.0
webgl_500k 39404703.0
webgl_1M 81589897.0
heat_500k 38192157.0
webgl_100k 9015270.0
webgl_1M 73492636.0
heat_100k 9019476.0
heat_250k 21885972.0
webgl_1M 76508484.0
webgl_250k 19208735.0
webgl_10k 2512594.0
webgl_1M 108028953.0
webgl_2M 163604518.0
webgl_2M 137687968.0
heat_10k 2434412.0
webgl_2M 144642088.0
heat_100k 8660046.0
webgl_2M 300501677.0
heat_500k 44505808.0
webgl_10k 2693862.0
heat_250k 18230800.0
heat_100k 9375748.0
heat_500k 40078422.0
webgl_100k 8863401.0
heat_100k 8806440.0
heat_100k 8615877.0
webgl_10k 2629253.0
heat_100k 8597083.0
webgl_100k 8834167.0
webgl_1M 74277214.0
webgl_1M 71912438.0
heat_1M 75226909.0
heat_100k 9479546.0
heat_2M 191646341.0
heat_250k 24369621.0
webgl_2M 300913670.0
webgl_250k 28478782.0
heat_1M 78614722.0
heat_100k 9327153.0
webgl_10k 2644313.0
heat_10k 2536583.0
heat_1M 72890290.0
heat_1M 159364430.0
webgl_10k 2777311.0
heat_10k 2414903.0
heat_10k 2407249.0
heat_250k 21605505.0
webgl_1M 68191260.0
heat_500k 37530679.0
webgl_1M 76198015.0
heat_100k 8970928.0
heat_1M 72401123.0
heat_10k 2445213.0
heat_2M 245320184.0
heat_500k 40257462.0
heat_10k 2571018.0
heat_2M 231966848.0
heat_1M 74655412.0
webgl_2M 157065185.0
webgl_100k 8794658.0
heat_2M 226002121.0
webgl_250k 21352602.0
webgl_500k 38688910.0
heat_10k 2966510.0
heat_100k 9261592.0
webgl_2M 227561987.0
webgl_500k 38208067.0
heat_500k 38907106.0
webgl_1M 76399828.0
heat_10k 3687015.0
heat_1M 82138119.0
webgl_2M 238520103.0
webgl_1M 75339171.0
webgl_500k 39698004.0
heat_10k 2705450.0
heat_1M 71770825.0
heat_1M 72611534.0
heat_250k 105303612.0
heat_500k 35274429.0
heat_250k 18731400.0
heat_2M 146941184.0
heat_2M 241589210.0
webgl_10k 2605005.0
heat_1M 74532080.0
webgl_250k 21826487.0
heat_100k 8650730.0
heat_1M 71389794.0
heat_1M 158201741.0
heat_2M 176313760.0
webgl_250k 29799453.0
webgl_2M 270985158.0
heat_2M 145703393.0
heat_250k 22185675.0
webgl_250k 19228846.0
webgl_100k 11024386.0
heat_100k 8639082.0
webgl_100k 8672434.0
heat_250k 22702384.0
webgl_10k 2631704.0
webgl_2M 222109632.0
webgl_500k 38538726.0
webgl_2M 142665707.0
webgl_500k 38309233.0
heat_100k 11901e3
heat_1M 161629211.0
heat_100k 8738244.0
webgl_500k 35062221.0
heat_500k 37797104.0
heat_2M 223770551.0
heat_250k 18600102.0
heat_100k 8598071.0
webgl_10k 2440682.0
webgl_1M 76677459.0
webgl_10k 2510812.0
heat_500k 39740284.0
heat_1M 75739735.0
heat_100k 11696138.0
webgl_250k 18955729.0
webgl_250k 22251986.0
webgl_10k 2790788.0
heat_500k 38597992.0
heat_2M 237923630.0
heat_250k 19029166.0
heat_10k 2951480.0
heat_500k 38247195.0
heat_10k 2720162.0
webgl_100k 11131020.0
heat_500k 37621041.0
webgl_10k 3036126.0
webgl_500k 37579610.0
heat_10k 2712241.0
heat_1M 70110682.0
heat_10k 2561359.0
heat_2M 228891771.0
heat_2M 239410212.0
webgl_2M 276486288.0
webgl_2M 168724769.0
heat_10k 2472147.0
webgl_100k 8698055.0
heat_2M 242219978.0
webgl_2M 267712297.0
webgl_500k 38530757.0
webgl_500k 38096054.0
webgl_250k 19212813.0
heat_100k 11444918.0
heat_100k 8821890.0
heat_10k 2593480.0
heat_1M 73889138.0
webgl_100k 11444296.0
webgl_2M 248469096.0
heat_250k 22598308.0
heat_250k 112432575.0
webgl_500k 36166032.0
webgl_100k 8848593.0
webgl_1M 69805707.0
webgl_10k 2891612.0
heat_10k 2980178.0
heat_2M 146935135.0
heat_250k 18889951.0
webgl_500k 38696987.0
heat_100k 9051163.0
heat_500k 41806378.0
webgl_10k 2810711.0
webgl_10k 2430463.0
webgl_2M 242084687.0
heat_10k 2441319.0
heat_100k 8341620.0
webgl_500k 38178213.0
heat_2M 238400598.0
heat_2M 270034823.0
webgl_1M 71092028.0
heat_250k 20925468.0
heat_2M 265599372.0
webgl_1M 110647210.0
webgl_10k 3435889.0
heat_500k 40218012.0
webgl_250k 22376442.0
heat_10k 2709810.0
heat_100k 8897779.0
webgl_10k 2853046.0
heat_250k 19928757.0
webgl_500k 40107511.0
webgl_10k 3049834.0
heat_10k 2577647.0
heat_250k 21969603.0
heat_100k 9269737.0
heat_500k 55177763.0
webgl_250k 35276123.0
webgl_500k 55854052.0
webgl_10k 4425573.0
webgl_100k 9429907.0
webgl_100k 12308308.0
webgl_500k 43768052.0
heat_250k 24099544.0
heat_1M 163674735.0
heat_250k 22661241.0
heat_500k 37482575.0
webgl_100k 9283950.0
webgl_500k 40285568.0
webgl_10k 2937036.0
heat_10k 2881566.0
webgl_250k 19536489.0
heat_10k 2834631.0
heat_2M 150458153.0
webgl_10k 4869521.0
webgl_250k 26222151.0
heat_10k 3638434.0
heat_2M 163453066.0
webgl_250k 28723605.0
webgl_100k 11606414.0
heat_250k 25756626.0
webgl_500k 48577045.0
heat_100k 11945579.0
webgl_2M 245658599.0
heat_10k 2632468.0
heat_10k 2406739.0
heat_10k 2991340.0
webgl_2M 242442991.0
webgl_250k 20819009.0
webgl_1M 74944432.0
webgl_250k 21214250.0
heat_1M 83500802.0
heat_250k 23602283.0
webgl_100k 9437924.0
heat_250k 20550664.0
webgl_250k 25398895.0
heat_2M 233972176.0
webgl_500k 130726455.0
webgl_500k 36480429.0
webgl_500k 46475568.0
webgl_2M 159191605.0
webgl_250k 25214684.0
heat_10k 2666918.0
webgl_100k 8870564.0
webgl_100k 9137144.0
heat_500k 37171073.0
webgl_500k 45682159.0
heat_250k 18679121.0
heat_1M 76380447.0
heat_500k 39569448.0
webgl_500k 40364094.0
webgl_100k 9368821.0
webgl_2M 168092600.0
heat_100k 9257653.0
heat_500k 43473799.0
webgl_1M 77166841.0
heat_2M 246272820.0
webgl_10k 2693431.0
webgl_100k 8329041.0
heat_250k 24370823.0
webgl_1M 96677512.0
webgl_100k 8588190.0
heat_10k 2405669.0
webgl_500k 41156540.0
webgl_100k 8949453.0
heat_100k 11246472.0
webgl_100k 8751967.0
heat_500k 37832664.0
webgl_10k 3291400.0
webgl_2M 266376715.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment