gpt4 book ai didi

php - 性能 text/html 与 application/json

转载 作者:IT王子 更新时间:2023-10-29 00:13:28 26 4
gpt4 key购买 nike

在评估 PHP 框架的性能时,我遇到了一个奇怪的问题

application/json 形式发送 JSON 似乎比没有额外 header 的发送慢得多(这似乎回退到 text/html)

示例 #1(应用程序/json)

header('Content-Type: application/json');
echo json_encode($data);

示例 #2(文本/html)

echo json_encode($data);

使用 apache bench (ab -c10 -n1000) 测试得到:

示例 #1:350 #/秒

示例 #2:440 #/秒

这表明设置额外的标题似乎有点慢。

但是:

通过“ajax”获取相同的 JSON (jQuery.getJSON('url', function(j){console.log(j)});) 使得差异非常大(时间为在 Chrome Web Inspector 中看到):

示例 #1:340 毫秒/请求

示例 #2:980 毫秒/请求

这种差异是怎么回事?

尽管存在性能差异,是否有理由使用 application/json?

最佳答案

我将回答问题的最后一部分:

Is there a reason to use application/json despite the performance difference?

回答:是的

为什么:1) text/html 通常可能是格式错误的 json,并且在您尝试解析它之前不会被捕获。 application/json 将失败,只要 json 格式错误,您就可以轻松调试

2) 如果您在浏览器中查看 json,具有 header 类型会将其格式化为用户友好的格式。 text/html 会将其显示为一个 blob。

3) 如果您在网页上使用此 json,application/json 将立即转换为 js 对象,您可以将它们作为 obj.firstnode.childnode 等访问。

4) 回调特性可以作用于application/json,但不能作用于text/html

注意:使用 gzip 将充分缓解性能问题。 text/html 仍然会更快一些,但不是推荐的获取 json 对象的方式

虽然希望看到更多关于性能的见解。 header 长度绝对不会导致性能问题。更多与您的网络服务器分析 header 格式有关。

关于php - 性能 text/html 与 application/json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com