首页 > 解决方案 > 多线程和 TCP 套接字编码的效率

问题描述

我开发了一个服务器,它接受许多传入的 TCP 客户端连接,并在它们之间传输数据。客户端 A 可以通过连接 A 发送一些数据,目标是客户端 B。服务器将数据转发到连接 B,以便客户端 B 获取数据。

我正在使用 Intel Core i7-8700 CPU @ 3.2GHz32 GB RAM的 PC 上进行测试。

我启动了其中两个服务器,并且有50 个线程不断运行。

每个线程以 150~300 ms的间隔重复以下步骤:

  1. 随机断开连接并连接到其中一台服务器
  2. 当连接到服务器时,服务器会在 SQL Server 数据库中创建一条新记录。
  3. 当与服务器断开连接时,服务器会更新数据库中的记录。
  4. 将16 KB 的数据发送到另一个随机选择的连接,并接收回 16 KB。

这是我在 Windows 任务管理器上观察到的两台服务器:

我的问题是:

我以前没有使用过带有 TCP 连接和线程的应用程序。所以我对这些数字是否看起来不合理的高没有感觉 - 如果是,那么我一定是以非常低效的方式完成编码。

你能告诉?

标签: multithreadingsocketstcp

解决方案


推荐阅读