Последовательность Corba<октет> намного медленнее, чем использование сокета

StackOverflow https://stackoverflow.com/questions/1079504

  •  21-08-2019
  •  | 
  •  

Вопрос

У меня есть вопрос, связанный с корбой.

В моем приложении Java я использую данные последовательности TypedEF;

Теперь я поигрался с этим вектором данных.Если я прав с последовательности спецификации CORBA, либо будет преобразована в XS: Base64Binary или XS: Hexbinary.Это должен быть непрозрачный тип, поэтому в нем не должно использоваться никакой сортировки.

Я пробовал разные стили IDL:

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

но я вижу, что перемещение данных с помощью Corba происходит намного медленнее, чем непосредственное использование сокета.Меня устраивают небольшие накладные расходы, но мне кажется, что данные все еще упорядочены.

Нужно ли мне как-то настроить свой шар для подавления маршаллинга или я что-то пропустил.

Это было полезно?

Решение

1) Нет, ничего настраивать не нужно.2) Вы ничего не пропустили.

Поскольку CORBA сортирует все, также сортируется и последовательность октетов. Он всегда маршалируется так, как есть (как последовательность байтов)..Маршалинг не означает, что он должен каким-то образом измениться.Кодировка CDR используется каждый раз для сериализации объекта.Этот процесс называется маршаллингом.

Кстати, вы используете Java-сферу SUN или JacORB? Поскольку каждый ORB может иметь разные или дополнительные настройки свойств.(Но этого не должно было быть...)

Определение Octect в спецификации CORBA 3.0.3:«Значения октетной константы вне диапазона 0–255 вызовут ошибку во время компиляции.[...] Тип октета представляет собой 8-битную величину, которая гарантированно не подвергается никакому преобразованию при передаче системой связи».

Изменения в курсив

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top