gpt4 book ai didi

c# - SslStream 慢取决于 BufferedStream 的包装

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:47 24 4
gpt4 key购买 nike

我最近调试了一个关于我如何使用 SslStream 的性能问题。

客户端是 C#/.NET 并且具有以下 Stream 配置

  • 原始套接字/NetStream
  • 由 BufferedStream 封装
  • 由 SslStream 封装
  • 由“协议(protocol)”流包装(发送字节/整数/字符串等)

我发现在通过互联网从客户端向服务器发送数据时性能极慢,在客户端序列化信息需要很长时间。

删除 SSL 流,连接速度达到预期水平。

然后我将上面的流配置更改为..

  • 原始套接字/NetStream
  • 由 SslStream 封装
  • 由 BufferedStream 封装 <-- 移动了这个
  • 由“协议(protocol)”流包装(发送字节/整数/字符串等)

并且连接速度达到了预期的水平。

有人能解释一下为什么更改流配置对性能有如此大的帮助吗?特别是当我在与服务器运行速度非常快的同一台机器上使用客户端测试原始配置时?

最佳答案

原因很简单。您保存一个 int(仅 4 个字节),它被包装到 SSL 数据包中,然后进行缓冲。更改顺序后,您开始在缓冲区中收集大量数据,然后用 SSL 将其包装为一个大块。更少的 SSL 包装器,更高的速度。

关于c# - SslStream 慢取决于 BufferedStream 的包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965073/

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