gpt4 book ai didi

c++ - C Web 服务器和 Chrome 开发工具问题

转载 作者:行者123 更新时间:2023-11-28 08:25:24 25 4
gpt4 key购买 nike

我最近开始深入研究 C 语言的 http 编程,并且有一个可以处理 GET 和 POST 的正常运行的服务器。我的问题涉及我的网站加载时间以及我应该如何发送响应 header 和响应消息。

我注意到在 Chromes 资源跟踪工具中,在大多数情况下(与服务器在同一网络上)几乎没有(几毫秒)连接/发送/代理/阻塞/等待时间,但接收时间可能会有很大差异.我不完全确定接收时间包括什么。我主要看到 png 文件的接收时间很长(40 到 140 毫秒或更多),有时是 javascript 文件,很少有其他文件,但它并不真正一致。

有人能帮我解释一下吗?

我还没有做太多测试,但我想知道我是否改变了我用来发送 header /消息的方法会有帮助。我目前将站点的每个文件连同它的标题一起缓存在服务器内存中(都在同一个 char* 中)。当我发送所请求的文件时,我只使用 header /文件组合执行 1 send() 调用(它不涉及任何字符串操作 b/c,它都是在服务器启动时提前完成的)。

将它分成多个小的 send() 调用会更好吗?

只是我使用 Chrome 开发工具(同样是通过无线路由器连接在本地网络上)获得的一些统计数据,网站加载时间从 120 毫秒到 570 毫秒不等。它有 19 个文件,总共 139.85KB。它所在的计算机是带有 TinyCore linux 的 Asus 901 上网本(atom 1.6ghz,2gb ddr2)。我知道我可以对线程的启动方式和其他一些事情进行一些优化,但不确定这对 atm 有多大影响。

最佳答案

如果您要在一个 send() 中发送整个响应,您应该设置 TCP_NODELAY 套接字选项。

如果这没有帮助,您可能想尝试使用数据包捕获工具,如 Wireshark看看您是否可以发现引入延迟的位置。

关于c++ - C Web 服务器和 Chrome 开发工具问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236300/

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