假设:
1
BeautifulSoap 2023-09-03 13:50:46 +08:00 via Android 3
keep alive 吧,chrome 多次请求就自动帮你处理了。nodejs 运行完脚本就停掉了所以打开的端口直接关了需要重开
|
2
hronro 2023-09-03 13:59:17 +08:00
听说 node.js 内置的 http 模块很拉, 在 node.js 里用 shell 去调用 CURL 发请求都比用内置的 http 模块快(听别人说的, 没实际验证过)
|
3
isbase 2023-09-03 14:05:53 +08:00 via iPhone
用 urllib 试试
|
4
L1shen 2023-09-03 14:08:32 +08:00
觉得内置的 http 慢可以试试 uWebSockets.js
|
5
sub166 2023-09-03 16:12:21 +08:00
换成 deno 或者 bun 试试
|
6
zsj1029 2023-09-03 19:38:55 +08:00 via iPhone
进程开销,如果是 koa 常驻内存再试,应该可以稳定
|
7
MrKrabs 2023-09-03 19:58:35 +08:00
盲猜 tcp 连接延迟
|
8
githmb 2023-09-04 10:19:12 +08:00
有没有一种可能,浏览器的请求复用了一个 TCP 连接,你没发现你在 js 脚本里重复调用了几次只有第一次延迟有点高吗?
|
9
mark2025 2023-09-04 13:11:44 +08:00
1. nodejs 环境启动开销
2. http 握手开销 |
10
KiraMaple 2023-09-11 22:14:15 +08:00
@hronro 你看过 nodejs 的架构图就知道了,nodejs 本身调用 http 请求最后也是用 nodejs 内置的 curl 库,c++和 js 的交互应该不算频繁,而且 V8 在跨语言交互这块不算差
|
11
thynson 2023-09-15 09:54:05 +08:00
1. 浏览器的 keep-alive 机制优化掉了连接建立的开销
2. 浏览器默认会开启压缩,而 postman/node.js 默认没有压缩,如果 response body 较大,而且网速不够快的话,会有显著的区别 3. 如果你要测量一个接口的响应时间,最好在服务端测量,浏览器端的测量不可避免的会收到网络的影响 |