Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
到环回接口的TCP连接有多少开销?_Tcp_Localhost_Connection Pooling_Couchbase_Loopback - Fatal编程技术网

到环回接口的TCP连接有多少开销?

到环回接口的TCP连接有多少开销?,tcp,localhost,connection-pooling,couchbase,loopback,Tcp,Localhost,Connection Pooling,Couchbase,Loopback,我正在构建一个web应用程序,其中所有数据库连接都是通过在同一台机器上运行的代理完成的(特别是)。我听说建立到外部服务器的TCP连接会有开销(时间和内存),这是连接池(Moxi处理外部连接)背后的基本原理。但是,对于到本地主机/环回的TCP连接,是否也存在这种开销?具体来说,我是否需要在我的应用程序和本地代理之间建立连接池,或者我是否可以为每个请求在那里建立新连接?更一般地说(对于我自己的教育,我想),如果在建立到本地主机的TCP连接时有任何开销,它是如何引入的?对于本地主机,同样适用于远程TC

我正在构建一个web应用程序,其中所有数据库连接都是通过在同一台机器上运行的代理完成的(特别是)。我听说建立到外部服务器的TCP连接会有开销(时间和内存),这是连接池(Moxi处理外部连接)背后的基本原理。但是,对于到本地主机/环回的TCP连接,是否也存在这种开销?具体来说,我是否需要在我的应用程序和本地代理之间建立连接池,或者我是否可以为每个请求在那里建立新连接?更一般地说(对于我自己的教育,我想),如果在建立到本地主机的TCP连接时有任何开销,它是如何引入的?

对于本地主机,同样适用于远程TCP,但响应时间是一个较低的因素—(对于我刚刚进行的简单测试,响应时间是0.019毫秒,而不是0.19毫秒)

不过,这只是开销的一部分,它会影响建立连接所需的时间。 (TCP SYN-ACK序列,您可以在wikipedia上查找:)


除此之外,数据库本身可能会引入其他开销—接受连接、检查安全性、检查授权,可能会加载任何用户特定的设置即使使用本地主机连接,这种开销也会保持不变。

与使用UDP或直接在IP上构建协议相比,每一个额外的CPU指令都会带来额外的开销,TCP总是会有额外的开销。然而,连接到本地主机时,这种开销几乎无法测量。