Marshaling Basic Types

Description

The suite measures the time it takes to complete a method invocation depending on the type and direction of the argument. The purpose of the suite is to assess the behavior of the marshaling mechanism.

Direction IN

IDL Code

typedef <type> tPingArg;
interface Ping { void Pong (in tPingArg xArg); }

C++ Code

tPingArg xPingArg;
ulonglong ActionPing (void *pArgs)
{
  pPing->Pong (xPingArg);
  return (0);
}

void PingServant::Pong (tPingArg xArg) { }

Java Code

private <type> pingArg;
public final void execute (long [] times) {
  pingServer.Pong (pingArg);
}

public final void Pong (<type> xArg) { }

Direction OUT

IDL Code

typedef <type> tPingArg;
interface Ping { void Pong (out tPingArg xArg); }

C++ Code

tPingArg xPingArg;
ulonglong ActionPing (void *pArgs)
{
  pPing->Pong (xPingArg);
  return (0);
}

void PingServant::Pong (tPingArg_out xArg) { }

Java Code

private <type> pingArg;
public final void execute (long [] times) {
  pingServer.Pong (pingArg);
}

public final void Pong (<type> xArg) { }

Direction INOUT

IDL Code

typedef <type> tPingArg;
interface Ping { void Pong (inout tPingArg xArg); }

C++ Code

tPingArg xPingArg;
ulonglong ActionPing (void *pArgs)
{
  pPing->Pong (xPingArg);
  return (0);
}

void PingServant::Pong (tPingArg &xArg) { }

Java Code

private <type> pingArg;
public final void execute (long [] times) {
  pingServer.Pong (pingArg);
}

public final void Pong (<type> xArg) { }

Direction RETURN

IDL Code

typedef <type> tPingArg;
interface Ping { tPingArg Pong (); }

C++ Code

ulonglong ActionPing (void *pArgs)
{
  pPing->Pong ();
  return (0);
}

tPingArg xPingArg;
tPingArg PingServant::Pong ()
{
  return (xPingArg);
}

Java Code

public final void execute (long [] times) {
  pingServer.Pong ();
}

private <type> pingArg;
public final <type> Pong () {
  return (pingArg);
}

Results

The roundtrip time should be constant for all the types and directions of the argument, except for the char and wchar types, where the roundtrip time may be affected by the codeset conversion, and the long long, unsigned long long and long double types, where the roundtrip time may be affected by the handling of non native types. The quartile range of the values should be small.

The memory usage, network usage and processor usage should be constant, except for the char and wchar types, where the usage may be affected by the codeset conversion, and the long long, unsigned long long and long double types, where the usage may be affected by the handling of non native types.


Linux with GCC


CORBAe micro

Dependency On Type (Direction IN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction OUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction INOUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction RETURN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.


CORBAe micro static

Dependency On Type (Direction IN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction OUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction INOUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction RETURN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.


TAO Regular

Dependency On Type (Direction IN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction OUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction INOUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction RETURN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.


Summary

Dependency On Type (Direction IN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction OUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction INOUT, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.

Dependency On Type (Direction RETURN, 1 Thread)

The graph depicts the dependency of the time it takes to complete the invocation on the type and direction of the argument. On the X axis is the type of the argument, on the Y axis is the time it took to complete the invocation.