改进Windows中的Socket性能
Improving Socket Performance in Windows
我对网络通信方法很陌生。我刚刚开发了一个非常简单的服务器/客户端连接,使用微软网站中描述的过程:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms737889 (v = vs.85) . aspx
我使用套接字在FORTRAN程序(客户端)和c++程序(服务器)之间传输大量数据(双数字)。(在FORTRAN中,"USE IFWIN"提供了大多数windows编程函数,包括定义clientsocket的函数)
我想提高传输数据的性能。您认为使用任何库(如boost)可以提高处理大量数据的性能吗?Microsoft过程和使用boost之类的库之间究竟有什么区别?
欢迎评论
我认为首先您应该确定网络性能是否对您的应用程序有问题。
在您控制通信两端的网络中,提高批量数据吞吐量的最简单方法是压缩它。为此,我推荐使用zlib。我不确定FORTRAN中有哪些可用的api/绑定,但最坏的情况是,您可以使用任何众所周知的、公开可用的算法(霍夫曼编码等)自己实现压缩。
您也可以尝试以块的形式发送数据。因此,当您读取下一个数据块时,您将能够处理前一个数据块。
[Chunk-size;Chunk-Data] [Chunk-size;Chunk-Data]…相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- OpenMP阵列性能较差
- 递归列出所有目录中的C++与Python与Ruby的性能
- 大小相等但成员数量不同的结构之间的性能差异
- 为什么constexpr的性能比正常表达式差
- 在类中使用随机生成器时出现性能问题
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 海湾合作委员会 ARM 性能下降
- GCC 和 Clang 代码性能的巨大差异
- 在容量内调整矢量大小时的性能影响
- 了解算法的性能差异(如果以不同的编程语言实现)
- 未达到的情况会影响开关外壳性能
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 哪种方法更好,性能明智
- C++ 特征库:引用的性能开销<>
- C/C++:socket() 创建在循环中失败,打开的文件太多
- 与多个 for 循环与单个 for 循环 wrt 相关的性能从多映射获取数据
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- 改进Windows中的Socket性能