简单的问题:框架初始化,用时多少算合格?

2013-05-25 15:33:04 +08:00
 raincious
最近一直在忙着弄框架。现在还差模板引擎+插件系统就算完成了。但是效率总是觉得不满意,于是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
3283 次点击
所在节点    PHP
2 条回复
lyjyiran
2013-05-25 15:46:40 +08:00
小项目不注重性能不用特意优化, 大项目不会不考虑opcode缓存,mysqlnd之类的扩展甚至db中间层.

而且法无定则,光一个include文件,小项目注重lazyload,避免无用文件的加载开销; 大项目为了opcode会尽量eagerload

我觉得这类优化没太大意思, pure php和symfony构建的项目除了benchmark, 自然人在公网访问能感受多少差异?
raincious
2013-05-25 15:59:11 +08:00
@lyjyiran 嗯。。。。这个道理我是懂了,但,我的目的是让框架更快一点,至少不能慢于平均值嗯。所以才发了这个帖子来问。

此外,我觉得如果我框架的速度够快,那么给其他程序员施加的优化的负担就小了,而且可以让一台服务器能够承受更多的流量,能够节省一些投资(公司会喜欢),所以。。。嗯。。。我才这么做的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/70117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX