php下curl与file_get_contents性能对比
上一篇讲了《php使用curl替代file_get_contents》, 后续贴出了curl和file_get_contents的对比结果,这边除了curl与file_get_contents的性能对比,还包含了他们的性能对比,讲之前看下如下的结果图:

php下curl与file_get_contents性能对比
curl与file_get_contents性能对比PHP源代码如下:
1829.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?php
/**
* 通过淘宝IP接口获取IP地理位置
* @param string $ip
* @return: string
**/
function
getCityCurl
(
$ip
)
{
$url
=
"http://ip.taobao.com/service/getIpInfo.php?ip="
.
$ip
;
$ch
=
curl_init
(
)
;
$timeout
=
5
;
curl_setopt
(
$ch
,
CURLOPT_URL
,
$url
)
;
curl_setopt
(
$ch
,
CURLOPT_RETURNTRANSFER
,
1
)
;
curl_setopt
(
$ch
,
CURLOPT_CONNECTTIMEOUT
,
$timeout
)
;
$file_contents
=
curl_exec
(
$ch
)
;
curl_close
(
$ch
)
;
$ipinfo
=
json_decode
(
$file_contents
)
;
if
(
$ipinfo
->
code
==
'1'
)
{
return
false
;
}
$city
=
$ipinfo
->
data
->
region
.
$ipinfo
->
data
->
city
;
return
$city
;
}
function
getCity
(
$ip
)
{
$url
=
"http://ip.taobao.com/service/getIpInfo.php?ip="
.
$ip
;
$ipinfo
=
json_decode
(
file_get_contents
(
$url
)
)
;
if
(
$ipinfo
->
code
==
'1'
)
{
return
false
;
}
$city
=
$ipinfo
->
data
->
region
.
$ipinfo
->
data
->
city
;
return
$city
;
}
// for file_get_contents
$startTime
=
explode
(
' '
,
microtime
(
)
)
;
$startTime
=
$startTime
[
0
]
+
$startTime
[
1
]
;
for
(
$i
=
1
;
$i
<=
10
;
$i
++
)
{
echo
getCity
(
"121.207.247.202"
)
.
"</br>"
;
}
$endTime
=
explode
(
' '
,
microtime
(
)
)
;
$endTime
=
$endTime
[
0
]
+
$endTime
[
1
]
;
$totalTime
=
$endTime
-
$startTime
;
echo
'file_get_contents:'
.
number_format
(
$totalTime
,
10
,
'.'
,
""
)
.
" seconds</br>"
;
//for curl
$startTime2
=
explode
(
' '
,
microtime
(
)
)
;
$startTime2
=
$startTime2
[
0
]
+
$startTime2
[
1
]
;
for
(
$i
=
1
;
$i
<=
10
;
$i
++
)
{
echo
getCityCurl
(
'121.207.247.202'
)
.
"</br>"
;
}
$endTime2
=
explode
(
' '
,
microtime
(
)
)
;
$endTime2
=
$endTime2
[
0
]
+
$endTime2
[
1
]
;
$totalTime2
=
$endTime2
-
$startTime2
;
echo
"curl:"
.
number_format
(
$totalTime2
,
10
,
'.'
,
""
)
.
" seconds"
;
?>
|
测试访问
http://test.ttlsa.com/html/1829.php
file_get_contents速度:4.2404510975 seconds
curl速度:2.8205530643 seconds
curl比file_get_contents速度快了30%左右,最重要的是服务器负载更低.
转载请注明出处:php下curl与file_get_contents性能对比 http://www.ttlsa.com/html/1829.html
收 藏
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!