最近一直在忙着弄框架。现在还差模板引擎+插件系统就算完成了。但是效率总是觉得不满意,于是ab.exe测试了下。
测试项目就是让框架自己初始化好,然后SELECT * FROM table WHERE 1 LIMIT 0,1(table里面也只有一个row),最后,输出一个Hello Word。
我考虑如果不开APC不开数据库持久链接,能0.01秒内完成如上操作,那么也就OK了。但现在如上操作消耗平均0.017-0.033秒,感觉有点慢(而且跨度也太大了),好捉鸡啊。
所以我想问一下大家,你自己的框架初始化的速度是多少才算合格?好让我有一个优化的目标。感谢大家。
// 以下是附加内容,可以忽略:
记得有个测评说YII每秒能处理500多个请求,于是乎我也测试了下请求数:
测试机器是双核2.1GHz的Core2,内存4GB,系统用掉了2GB,Windows。
这是ab的结果:
这是不打开APC,PDO不持续连接数据库的时候:
Concurrency Level: 200
Time taken for tests: 57.398 seconds
Complete requests: 7000
Failed requests: 6555
(Connect: 0, Receive: 0, Length: 6555, Exceptions:
Write errors: 0
Total transferred: 2355482 bytes
HTML transferred: 1046482 bytes
Requests per second: 121.95 [#/sec] (mean) // 每秒只能处理121次请求
Time per request: 1639.951 [ms] (mean)
Time per request: 8.200 [ms] (mean, across all c
Transfer rate: 40.08 [Kbytes/sec] received
这是打开APC,PDO不持续连接数据库的时候:
Concurrency Level: 200
Time taken for tests: 33.709 seconds
Complete requests: 7000
Failed requests: 3652
(Connect: 0, Receive: 0, Length: 3652, Exceptions: 0)
Write errors: 0
Total transferred: 2354512 bytes
HTML transferred: 1045512 bytes
Requests per second: 207.66 [#/sec] (mean) // 稍微高一点
Time per request: 963.112 [ms] (mean)
Time per request: 4.816 [ms] (mean, across all concurrent requests)
Transfer rate: 68.21 [Kbytes/sec] received
这是打开APC+PDO设定持续连接的时候:
Concurrency Level: 200
Time taken for tests: 24.229 seconds
Complete requests: 7000
Failed requests: 4994
(Connect: 0, Receive: 0, Length: 4994, Exceptions: 0)
Write errors: 0
Total transferred: 2362188 bytes
HTML transferred: 1053188 bytes
Requests per second: 288.91 [#/sec] (mean) // 稍微稍微比之前的高一点,但是持续连接用不好会有灾难性事件的
Time per request: 692.268 [ms] (mean)
Time per request: 3.461 [ms] (mean, across all concurrent requests)
Transfer rate: 95.21 [Kbytes/sec] received
测试项目就是让框架自己初始化好,然后SELECT * FROM table WHERE 1 LIMIT 0,1(table里面也只有一个row),最后,输出一个Hello Word。
我考虑如果不开APC不开数据库持久链接,能0.01秒内完成如上操作,那么也就OK了。但现在如上操作消耗平均0.017-0.033秒,感觉有点慢(而且跨度也太大了),好捉鸡啊。
所以我想问一下大家,你自己的框架初始化的速度是多少才算合格?好让我有一个优化的目标。感谢大家。
// 以下是附加内容,可以忽略:
记得有个测评说YII每秒能处理500多个请求,于是乎我也测试了下请求数:
测试机器是双核2.1GHz的Core2,内存4GB,系统用掉了2GB,Windows。
这是ab的结果:
这是不打开APC,PDO不持续连接数据库的时候:
Concurrency Level: 200
Time taken for tests: 57.398 seconds
Complete requests: 7000
Failed requests: 6555
(Connect: 0, Receive: 0, Length: 6555, Exceptions:
Write errors: 0
Total transferred: 2355482 bytes
HTML transferred: 1046482 bytes
Requests per second: 121.95 [#/sec] (mean) // 每秒只能处理121次请求
Time per request: 1639.951 [ms] (mean)
Time per request: 8.200 [ms] (mean, across all c
Transfer rate: 40.08 [Kbytes/sec] received
这是打开APC,PDO不持续连接数据库的时候:
Concurrency Level: 200
Time taken for tests: 33.709 seconds
Complete requests: 7000
Failed requests: 3652
(Connect: 0, Receive: 0, Length: 3652, Exceptions: 0)
Write errors: 0
Total transferred: 2354512 bytes
HTML transferred: 1045512 bytes
Requests per second: 207.66 [#/sec] (mean) // 稍微高一点
Time per request: 963.112 [ms] (mean)
Time per request: 4.816 [ms] (mean, across all concurrent requests)
Transfer rate: 68.21 [Kbytes/sec] received
这是打开APC+PDO设定持续连接的时候:
Concurrency Level: 200
Time taken for tests: 24.229 seconds
Complete requests: 7000
Failed requests: 4994
(Connect: 0, Receive: 0, Length: 4994, Exceptions: 0)
Write errors: 0
Total transferred: 2362188 bytes
HTML transferred: 1053188 bytes
Requests per second: 288.91 [#/sec] (mean) // 稍微稍微比之前的高一点,但是持续连接用不好会有灾难性事件的
Time per request: 692.268 [ms] (mean)
Time per request: 3.461 [ms] (mean, across all concurrent requests)
Transfer rate: 95.21 [Kbytes/sec] received
