All Projects → speedtestdemon → speed-tests

speedtestdemon / speed-tests

Licence: MIT License
Code for comparing CDN speeds!

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to speed-tests

k6-template-es6
Template repository for bundling test projects into single test scripts runnable by k6
Stars: ✭ 39 (+77.27%)
Mutual labels:  performance-testing
uploadcare-rails
Rails wrapper for Uploadcare
Stars: ✭ 48 (+118.18%)
Mutual labels:  cdn
azure-cdn-ips
List of Azure CDN IP Addresses
Stars: ✭ 14 (-36.36%)
Mutual labels:  cdn
cdn-up-and-running
CDN Up and Running - an introduction about how modern CDNs works
Stars: ✭ 131 (+495.45%)
Mutual labels:  cdn
k6-example-github-actions
No description or website provided.
Stars: ✭ 18 (-18.18%)
Mutual labels:  performance-testing
best
🏆 Delightful Benchmarking & Performance Testing
Stars: ✭ 73 (+231.82%)
Mutual labels:  performance-testing
cassandra-nginx-cdn
Some config files and POC code to use Apache Cassandra as distributed storage for HLS chunks accross multiple datacenters and scripts for converting/transcoding UDP MPEG-TS to HLS and vice versa. The idea is take from Globo.com’s Live Video Platform for FIFA World Cup ’14.
Stars: ✭ 24 (+9.09%)
Mutual labels:  cdn
Thunderstore
Thunderstore is a mod database and API for downloading mods. Thunderstore Discord: https://discord.gg/UWpWhjZken
Stars: ✭ 45 (+104.55%)
Mutual labels:  cdn
nocdn
Self-hosted alternative to CDNs.
Stars: ✭ 37 (+68.18%)
Mutual labels:  cdn
Performance-Testing-Tools
🛠 Curated list of Performance Testing Tools ⚡ All contributions are welcome 💜
Stars: ✭ 17 (-22.73%)
Mutual labels:  performance-testing
pacman.store
Pacman Mirror via IPFS for ArchLinux, Endeavouros and Manjaro
Stars: ✭ 65 (+195.45%)
Mutual labels:  cdn
JUnitPerf
API performance testing framework built using JUnit
Stars: ✭ 48 (+118.18%)
Mutual labels:  performance-testing
ddosify
High-performance load testing tool, written in Golang.
Stars: ✭ 3,788 (+17118.18%)
Mutual labels:  performance-testing
cm
Configuration management for all VOC systems
Stars: ✭ 17 (-22.73%)
Mutual labels:  cdn
api-server
📡 API server for api.cdnjs.com - The #1 free and open source CDN built to make life easier for developers.
Stars: ✭ 48 (+118.18%)
Mutual labels:  cdn
underwater
~2kb - ES6 Collection of helper functions. Lodash like
Stars: ✭ 18 (-18.18%)
Mutual labels:  cdn
AutoChange12306CDN
一个自动切换12306 CDN的代理,只需设置浏览器的代理为此软件监听端口,每次查询请求都会更换CDN,达到快速刷票的目的。
Stars: ✭ 35 (+59.09%)
Mutual labels:  cdn
Openrunner
Computest Openrunner: Benchmark and functional testing for frontend-heavy web applications
Stars: ✭ 16 (-27.27%)
Mutual labels:  performance-testing
async-script-loader
Asynchronous script loading for SPAs
Stars: ✭ 15 (-31.82%)
Mutual labels:  cdn
cdn
Simple and fast property-based configuration library for JVM apps, similar to JSON5 standard, also with JSON & YAML-like targets 🧾
Stars: ✭ 33 (+50%)
Mutual labels:  cdn

How to run speed test.

the image to use

The image you should probably use is: cf_219kb.png

cf_219kb.png is an image that won't be compressed by Jetpack Wordpress. So, uploading that image to both Jetpack and CloudFront CDN will result in the same image being downloaded.

curl-format.txt is how to run the speed test.

Here is a shell script of how the speed test is run:

the curl command

speedtest() {
  curl -w "@curl-format.txt" -o tmp -s $@
}

Please note that you do NOT want to -o /dev/null, as this will make curl will cleverly skip the data transfer (i.e. download) phase. Which will throw off your speed test measurement. So it is important to have -o tmp to actually download the file.

the measurement

the very first curl you should copy-paste into your notes. This curl is very interesting to measure because the 1st curl is always the slowest. This is usually the biggest variance between the CDNs. The first curl is an indicator of how fast the CDN loads for 1st-time visitors.

the 2nd measurement is doing at least 10 subsequent curls, and taking the average. This measures how well a CDN caches content for multiple page visitors.

The script

Installation:

The script uses the pycurl module. To install it run:

$ pip3 install pycurl

If the installation fails you may need to install these dependencies:

  • libssl-dev
  • libcurl4-openssl-dev On Linux:
$ sudo apt-get install libssl-dev libcurl4-openssl-dev

Testing:

To run it just run:

$python3 script.py < url >

Example:

$ python3 script.py 'https://d3va53q3li7xt1.cloudfront.net/wp-content/uploads/2021/05/shoeb-1024x576.png'

Output:

10 requests done. Average:
time_namelookup: 0.004422
time_connect: 0.014404
time_appconnect: 0.036274900000000006
time_pretransfer: 0.03636879999999999
time_redirect: 0.0
time_starttransfer: 0.049656500000000006
time_total: 0.0496897

The other files

cf.png is 703KB.
wp.png is 329KB.

Jetpack Wordpress compressed cf.png down to wp.png, which is why Jetpack won the initial speed test.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].