代码之家  ›  专栏  ›  技术社区  ›  Totonga

CORBA序列<octet>比使用socket慢得多

  •  0
  • Totonga  · 技术社区  · 15 年前

    我有一个关于CORBA的问题。

    在我的Java应用程序中,我使用 typedef序列数据;

    现在我开始使用这个数据向量。如果我符合CORBA规范 序列将转换为xs:base64二进制或xs:hexbinary。 它应该是不透明的类型,因此不应该使用任何编组。

    我尝试了不同的IDL样式:

    void Get(out Data d);
    Data Get();
    

    但我看到使用CORBA移动数据比直接使用套接字慢得多。我很好,有一点开销,但它在我看来,THA数据仍然是编组的。

    我是否需要以某种方式配置我的ORB来禁止编组,或者我错过了什么。

    1 回复  |  直到 14 年前
        1
  •  1
  •   tuergeist    15 年前

    1)不需要,不需要配置。 2)你没有错过什么。

    当CORBA整理所有内容时,八位字节序列也被整理。 它总是按原样进行编组(按字节序列) . 编组并不意味着它必须以某种方式改变。每次都使用cdr编码进行对象序列化。这个过程称为编组。

    顺便问一下,你使用Sun的Java ORB还是JacORB? 因为每个ORB可能有不同的或附加的属性设置。(但不应该……)

    octect definition re corba 3.0.3 spec:“超出0-255范围的octet常量的值将导致编译时错误。[…]八位字节类型是一个8位数量,保证在通信系统传输时不进行任何转换。”

    编辑 斜体字