同步和异步代码
  class SyncSleepHandler(RequestHandler):
  """
  同步的方式,一个延时1s的接口
  """
  def get(self):
  time.sleep(1)
  self.write("when i sleep 5s")
  class SleepHandler(RequestHandler):
  """
  异步的延时1秒的接口
  """
  @tornado.gen.coroutine
  def get(self):
  yield tornado.gen.Task(
  tornado.ioloop.IOLoop.instance().add_timeout,
  time.time() + 1
  )
  self.write("when i sleep 5s")
  同步测试结果
  ?  /  ab -n 200 -c 40 http://localhost:8009/demo/syncsleep-handler/
  This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
  Licensed to The Apache Software Foundation, http://www.apache.org/
  Benchmarking localhost (be patient)
  Completed 100 requests
  Completed 200 requests
  Finished 200 requests
  Server Software:        TornadoServer/4.2.1
  Server Hostname:        localhost
  Server Port:            8009
  Document Path:          /demo/syncsleep-handler/
  Document Length:        15 bytes
  Concurrency Level:      40
  Time taken for tests:   200.746 seconds
  Complete requests:      200
  Failed requests:        0
  Total transferred:      42000 bytes
  HTML transferred:       3000 bytes
  Requests per second:    1.00 [#/sec] (mean)
  Time per request:       40149.159 [ms] (mean)
  Time per request:       1003.729 [ms] (mean, across all concurrent requests)
  Transfer rate:          0.20 [Kbytes/sec] received
  Connection Times (ms)
  min  mean[+/-sd] median   max
  Connect:        0    0   0.2      0       1
  Processing:  1005 36235 18692.2  38133  200745
  Waiting:     1005 36234 18692.2  38133  200745
  Total:       1006 36235 18692.2  38133  200746
  Percentage of the requests served within a certain time (ms)
  50%  38133
  66%  38137
  75%  38142
  80%  38161
  90%  38171
  95%  38176
  98%  38179
  99%  199742
    200746 (longest request)
  异步测试结果
  ?  /  ab -n 200 -c 40 http://localhost:8009/demo/sleep-handler/
  This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
  Licensed to The Apache Software Foundation, http://www.apache.org/
  Benchmarking localhost (be patient)
  Completed 100 requests
  Completed 200 requests
  Finished 200 requests
  Server Software:        TornadoServer/4.2.1
  Server Hostname:        localhost
  Server Port:            8009
  Document Path:          /demo/sleep-handler/
  Document Length:        15 bytes
  Concurrency Level:      40
  Time taken for tests:   5.083 seconds
  Complete requests:      200
  Failed requests:        0
  Total transferred:      42000 bytes
  HTML transferred:       3000 bytes
  Requests per second:    39.35 [#/sec] (mean)
  Time per request:       1016.611 [ms] (mean)
  Time per request:       25.415 [ms] (mean, across all concurrent requests)
  Transfer rate:          8.07 [Kbytes/sec] received
  Connection Times (ms)
  min  mean[+/-sd] median   max
  Connect:        0    0   0.4      0       2
  Processing:  1001 1010  12.0   1005    1053
  Waiting:     1001 1010  12.0   1005    1053
  Total:       1001 1010  12.3   1005    1055
  Percentage of the requests served within a certain time (ms)
  50%   1005
  66%   1009
  75%   1011
  80%   1015
  90%   1032
  95%   1044
  98%   1045
  99%   1054
     1055 (longest request)