Skip to content

Instantly share code, notes, and snippets.

@kgriffs
Forked from jmvrbanac/falcon_perf.rst
Created September 12, 2016 16:31
Show Gist options
  • Save kgriffs/094f66d736719612d207fd8cc332b7b3 to your computer and use it in GitHub Desktop.
Save kgriffs/094f66d736719612d207fd8cc332b7b3 to your computer and use it in GitHub Desktop.
Performance numbers for Falcon with different servers

Setup

  1. apt-get update
  2. apt-get upgrade -y
  3. apt-get install -y apt-transport-https ca-certificates
  4. apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  5. echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > /etc/apt/sources.list.d/docker.list
  6. apt-get update
  7. apt-get install -y docker-engine
  8. service docker start
  9. reboot

Installed Packages

  1. beautifulsoup4 (4.5.1)
  2. bottle (0.12.9)
  3. CherryPy (8.1.0)
  4. click (6.6)
  5. falcon (1.0.0)
  6. Flask (0.11.1)
  7. itsdangerous (0.24)
  8. Jinja2 (2.8)
  9. logutils (0.3.3)
  10. Mako (1.0.4)
  11. MarkupSafe (0.23)
  12. pecan (1.1.2)
  13. pip (8.1.2)
  14. python-mimeparse (1.5.2)
  15. setuptools (20.10.1)
  16. six (1.10.0)
  17. waitress (1.0.0)
  18. WebOb (1.6.1)
  19. WebTest (2.0.23)
  20. Werkzeug (0.11.11)

DigitalOcean - 1GB Ram, 1 CPU, NYC3, Ubuntu 16.04.1 x64

Python 2.7.12

  1. falcon..........24207 req/sec or 41.31 μs/req (10x)
  2. falcon-ext......15415 req/sec or 64.87 μs/req (7x)
  3. bottle..........12681 req/sec or 78.86 μs/req (5x)
  4. werkzeug.........4030 req/sec or 248.13 μs/req (2x)
  5. flask............2655 req/sec or 376.60 μs/req (1x)
  6. pecan............2355 req/sec or 424.68 μs/req (1x)

Python 3.5.2

  1. falcon..........17699 req/sec or 56.50 μs/req (24x)
  2. falcon-ext......11691 req/sec or 85.54 μs/req (16x)
  3. bottle...........9162 req/sec or 109.15 μs/req (12x)
  4. werkzeug.........4134 req/sec or 241.90 μs/req (6x)
  5. flask............2650 req/sec or 377.39 μs/req (4x)
  6. pecan.............745 req/sec or 1342.55 μs/req (1x)

PyPy 5.3.1

  1. falcon.........216709 req/sec or 4.61 μs/req (34x)
  2. falcon-ext.....134931 req/sec or 7.41 μs/req (21x)
  3. bottle.........120066 req/sec or 8.33 μs/req (19x)
  4. werkzeug........26792 req/sec or 37.32 μs/req (4x)
  5. flask............7155 req/sec or 139.76 μs/req (1x)
  6. pecan............6384 req/sec or 156.65 μs/req (1x)

DigitalOcean - 2GB Ram, 2 CPU, NYC3, Ubuntu 16.04.1 x64

Python 2.7.12

  1. falcon..........24764 req/sec or 40.38 μs/req (12x)
  2. falcon-ext......15547 req/sec or 64.32 μs/req (7x)
  3. bottle..........12334 req/sec or 81.08 μs/req (6x)
  4. werkzeug.........4254 req/sec or 235.05 μs/req (2x)
  5. flask............2394 req/sec or 417.66 μs/req (1x)
  6. pecan............2092 req/sec or 478.09 μs/req (1x)

Python 3.5.2

  1. falcon..........19780 req/sec or 50.56 μs/req (30x)
  2. bottle..........11166 req/sec or 89.56 μs/req (17x)
  3. falcon-ext......10616 req/sec or 94.20 μs/req (16x)
  4. werkzeug.........4317 req/sec or 231.66 μs/req (7x)
  5. flask............2241 req/sec or 446.31 μs/req (3x)
  6. pecan.............656 req/sec or 1523.94 μs/req (1x)

PyPy 5.3.1

  1. falcon.........282049 req/sec or 3.55 μs/req (53x)
  2. bottle.........178106 req/sec or 5.61 μs/req (33x)
  3. falcon-ext.....145545 req/sec or 6.87 μs/req (27x)
  4. werkzeug........42729 req/sec or 23.40 μs/req (8x)
  5. flask............6399 req/sec or 156.27 μs/req (1x)
  6. pecan............5325 req/sec or 187.80 μs/req (1x)

Rackspace Public Cloud - General Purpose 1GB, 1vCPU, IAD, Ubuntu 16.04.1 x64 PVHVM

Python 2.7.12

  1. falcon..........28248 req/sec or 35.40 μs/req (9x)
  2. falcon-ext......18385 req/sec or 54.39 μs/req (6x)
  3. bottle..........14872 req/sec or 67.24 μs/req (5x)
  4. werkzeug.........5478 req/sec or 182.53 μs/req (2x)
  5. flask............3334 req/sec or 299.97 μs/req (1x)
  6. pecan............3088 req/sec or 323.82 μs/req (1x)

Python 3.5.2

  1. falcon..........21014 req/sec or 47.59 μs/req (21x)
  2. falcon-ext......13204 req/sec or 75.73 μs/req (13x)
  3. bottle..........12533 req/sec or 79.79 μs/req (13x)
  4. werkzeug.........5518 req/sec or 181.23 μs/req (6x)
  5. flask............3305 req/sec or 302.56 μs/req (3x)
  6. pecan.............994 req/sec or 1005.71 μs/req (1x)

PyPy 5.3.1

  1. falcon.........303647 req/sec or 3.29 μs/req (32x)
  2. bottle.........159992 req/sec or 6.25 μs/req (17x)
  3. falcon-ext.....139298 req/sec or 7.18 μs/req (15x)
  4. werkzeug........42746 req/sec or 23.39 μs/req (5x)
  5. flask...........10359 req/sec or 96.53 μs/req (1x)
  6. pecan............9434 req/sec or 106.00 μs/req (1x)

Rackspace Public Cloud - General Purpose 2GB, 2vCPU, IAD, Ubuntu 16.04.1 x64 PVHVM

Python 2.7.12

  1. falcon..........22636 req/sec or 44.18 μs/req (9x)
  2. falcon-ext......14910 req/sec or 67.07 μs/req (6x)
  3. bottle..........12422 req/sec or 80.50 μs/req (5x)
  4. werkzeug.........4311 req/sec or 231.96 μs/req (2x)
  5. flask............2754 req/sec or 363.09 μs/req (1x)
  6. pecan............2513 req/sec or 397.89 μs/req (1x)

Python 3.5.2

  1. falcon..........16733 req/sec or 59.76 μs/req (21x)
  2. falcon-ext......10448 req/sec or 95.72 μs/req (13x)
  3. bottle..........10434 req/sec or 95.84 μs/req (13x)
  4. werkzeug.........4563 req/sec or 219.17 μs/req (6x)
  5. flask............2807 req/sec or 356.29 μs/req (3x)
  6. pecan.............804 req/sec or 1244.42 μs/req (1x)

PyPy 5.3.1

  1. falcon.........239413 req/sec or 4.18 μs/req (31x)
  2. falcon-ext.....121962 req/sec or 8.20 μs/req (16x)
  3. bottle.........115126 req/sec or 8.69 μs/req (15x)
  4. werkzeug........32833 req/sec or 30.46 μs/req (4x)
  5. pecan............8418 req/sec or 118.80 μs/req (1x)
  6. flask............7763 req/sec or 128.82 μs/req (1x)

Packet.Net - Type 1 (4 Core 1x E3-1240 v3), EWR1 ==========================================

Python 2.7.12

  1. falcon..........55082 req/sec or 18.15 μs/req (10x)
  2. falcon-ext......34683 req/sec or 28.83 μs/req (7x)
  3. bottle..........29125 req/sec or 34.33 μs/req (6x)
  4. werkzeug........10348 req/sec or 96.64 μs/req (2x)
  5. flask............5827 req/sec or 171.62 μs/req (1x)
  6. pecan............5264 req/sec or 189.96 μs/req (1x)

Python 3.5.2

  1. falcon..........45977 req/sec or 21.75 μs/req (28x)
  2. falcon-ext......28142 req/sec or 35.53 μs/req (17x)
  3. bottle..........26136 req/sec or 38.26 μs/req (16x)
  4. werkzeug........11019 req/sec or 90.76 μs/req (7x)
  5. flask............6110 req/sec or 163.66 μs/req (4x)
  6. pecan............1666 req/sec or 600.38 μs/req (1x)

PyPy 5.3.1

  1. falcon.........624305 req/sec or 1.60 μs/req (30x)
  2. bottle.........436368 req/sec or 2.29 μs/req (21x)
  3. falcon-ext.....335417 req/sec or 2.98 μs/req (16x)
  4. werkzeug.......151152 req/sec or 6.62 μs/req (7x)
  5. flask...........28923 req/sec or 34.57 μs/req (1x)
  6. pecan...........21116 req/sec or 47.36 μs/req (1x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment