- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
与 Windows 和 Linux 上的命名管道和其他方法相比,在执行 IPC 时使用套接字的效率如何?
现在,我在 4 个需要通信的独立盒子上有 4 个独立的应用程序。两个是在 Windows Server 2003 R2 上运行的 .NET 3.5 应用程序。两个是 Linux (Suse Linux 10)。它们通常不受 CPU 限制。流量不是那么大,但低延迟非常重要。我们现在正在使用禁用 nagle 的套接字,并在 linux 机器上安装 sles10 慢启动补丁。
您认为只要在同一个 windows 机器上运行两个 windows 应用程序并在同一个 linux 机器上运行两个 linux 应用程序并且不做任何代码更改(即仍然使用套接字),我们会得到多少速度提升。
操作系统会意识到端点在同一台机器上并且知道不要将数据包传到以太网吗?他们的数据包是否仍然需要通过整个网络堆栈?如果我们花时间更改为命名管道或内存映射文件或其他东西,速度会快多少?
最佳答案
至于 TCP 性能,我最近在 HP-UX 服务器(8 个 Intel Itanium 2 处理器 1.5 GHz 6 MB,400 MT/s 总线)和 Red Hat Linux(2 IA-64 1 ,6 GHz)。我用了iperf为了测试TCP性能。我发现,与在两台不同机器上运行 iperf 相比,在同一台机器上运行 iperf 时,TCP 交换速度要快十倍以上。
您也可以尝试一下,因为其中有您可能感兴趣的选项 - 读取或写入的缓冲区长度、设置 TCP 无延迟等。您还可以比较 Windows 机器上的 TCP 交换速度,因为有一个用于 Winddws 的 iperf 版本。
这是一个更详细的比较:
1) 在不同 HP-UX 服务器上运行的两个 iperf 应用程序之间的 TCP 交换速度,默认 TCP 窗口 32K:387 Mbits/sec
2) 在不同 HP-UX 服务器上运行的两个 iperf 应用程序之间的 TCP 交换速度,TCP 窗口 512K:640 Mbits/sec
3) 在同一 HP-UX 服务器上运行的两个 iperf 应用程序之间的 TCP 交换速度,默认 TCP 窗口 32K:5.60 Gbits/sec
4) 在同一台 HP-UX 服务器上运行的两个 iperf 应用程序之间的 TCP 交换速度,默认 TCP 窗口 512K:5.70 Gbits/秒。
5) 在同一 Linux 服务器上运行的两个 iperf 应用程序之间的 TCP 交换速度,TCP 窗口 512K:7.06 Gbits/sec
6) 在 HP-UX 和 Linux 上运行的两个 iperf 应用程序之间的 TCP 交换速度,TCP 窗口 512K:699 Mbits/sec
关于c# - 适用于 Windows 和 Linux 的同一台机器上的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644851/
我在我的 Xcode 项目目录中输入了以下内容: keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA \
假设我有一个像这样的 DataFrame(或 Series): Value 0 0.5 1 0.8 2 -0.2 3 None 4 None 5 None
我正在对一个 Pandas 系列进行相对繁重的应用。有什么方法可以返回一些打印反馈,说明每次调用函数时在函数内部进行打印还有多远? 最佳答案 您可以使用跟踪器包装您的函数。以下两个示例,一个基于完成的
我有一个 DataFrame,其中一列包含列表作为单元格内容,如下所示: import pandas as pd df = pd.DataFrame({ 'col_lists': [[1, 2
我想使用 Pandas df.apply 但仅限于某些行 作为一个例子,我想做这样的事情,但我的实际问题有点复杂: import pandas as pd import math z = pd.Dat
我有以下 Pandas 数据框 id dist ds 0 0 0 0 5 1 0 0 7 2 0 0
这发生在我尝试使用 Gradle 构建时。由于字符串是对象,因此似乎没有理由发生此错误: No signature of method: java.util.HashMap.getOrDefault(
您好,有人可以解释为什么在 remaining() 函数中的 Backbone 示例应用程序 ( http://backbonejs.org/examples/todos/index.html ) 中
我有两个域类:用户 class User { String username String password String email Date dateCreated
问题陈述: 一个 pandas dataframe 列系列,same_group 需要根据两个现有列 row 和 col 的值从 bool 值创建。如果两个值在字典 memberships 中具有相似
apporable 报告以下错误: error: unknown type name 'MKMapItem'; did you mean 'MKMapView'? MKMapItem* destina
我有一个带有地址列的大型 DataFrame: data addr 0 0.617964 IN,Krishnagiri,635115 1 0.635428 IN,Chennai
我有一个列表list,里面有这样的项目 ElementA: Number=1, Version=1 ElementB: Number=1, Version=2 ElementC: Number=1,
我正在编译我的源代码,它只是在没有运行应用程序的情况下终止。这是我得到的日志: Build/android-armeabi-debug/com.app4u.portaldorugby/PortalDo
我正在尝试根据另一个单元格的值更改单元格值(颜色“红色”或“绿色”)。我运行以下命令: df.loc[0, 'Colour'] = df.loc[0, 'Count'].apply(lambda x:
我想弄清楚如何使用 StateT结合两个 State基于对我的 Scalaz state monad examples 的评论的状态转换器回答。 看来我已经很接近了,但是在尝试申请 sequence
如果我已经为它绑定(bind)了集合,我该如何添加 RibbonLibrary 默认的快速访问项容器。当我从 UI 添加快速访问工具项时,它会抛出 Operation is not valid whi
在我学习期间Typoclassopedia我遇到了这个证明,但我不确定我的证明是否正确。问题是: One might imagine a variant of the interchange law
我是一名优秀的程序员,十分优秀!