Skip to content

Instantly share code, notes, and snippets.

Avatar

JK.Ryan jkryanchou

View GitHub Profile
View Performance of Flask, Tornado, GEvent, and their combinations.md

Performance of Flask, Tornado, GEvent, and their combinations

Wensheng Wang, 10/1/11

Source: http://blog.wensheng.org/2011/10/performance-of-flask-tornado-gevent-and.html

When choosing a web framework, I pretty much have eyes set on Tornado. But I heard good things about Flask and Gevent. So I tested the performance of each and combinations of the three. I chose something just a little more advanced than a "Hello World" program to write - one that use templates. Here are the codes:

1, Pure Flask (pure_flask.py)

View gist:c47cbe2a07c1c9f775a6f6cdcbe20b6e
$ vi /etc/sysctl.conf
# 系统所有进程一共可以打开的文件数量, 每个套接字也占用一个文件描述字
fs.file-max = 1491124
# 系统同时保持TIME_WAIT套接字的最大数目,http 短链接会产生很多 TIME_WAIT 套接字。
net.ipv4.tcp_max_tw_buckets = 7000
# 关闭 tcp 来源跟踪
net.ipv4.conf.default.accept_source_route = 0
# 缩短套接字处于 TIME_WAIT 的时间, 60s -> 30s
net.ipv4.tcp_fin_timeout = 30
# 启用 TIME_WAIT 复用,使得结束 TIEM_WAIT 状态的套接字的端口可以立刻被其他套接字使用。
@jkryanchou
jkryanchou / proxymesh_requests_https.txt
Last active Mar 23, 2016
ProxyMesh Requests HTTPS Code Snippets
View proxymesh_requests_https.txt
# encoding: utf-8
import re
import base64
import socket
import requests.packages.urllib3.connectionpool
try:
from http.client import HTTPConnection, HTTPSConnection
You can’t perform that action at this time.