    Items = New Array;

    For Index = 0 To 499 Do

        Element                           = New Structure;
        Element.Insert("index", Index);
        Element.Insert("flag" , Index % 2 = 0);
        Element.Insert("title", "item_" + Index);
        Element.Insert("ratio", Index / 3.0);

        If Index % 7 = 0 Then
            Element.Insert("note", Undefined);
        EndIf;

        NumberList = New Array;

        For SubIndex = 0 To 7 Do
            NumberList.Add(Index * 10 + SubIndex);
        EndDo;

        Element.Insert("values", NumberList);

        Attributes = New Map;
        Attributes.Insert("group"  , "g" + (Index % 10));
        Attributes.Insert("enabled", Index % 3 <> 0);

        If Index % 5 = 0 Then
            Attributes.Insert("extra", Undefined);
        EndIf;

        Element.Insert("attrs", Attributes);
        Items.Add(Element);

    EndDo;

    Original = New Structure;
    Original.Insert("version", 1);
    Original.Insert("label"  , "benchmark");
    Original.Insert("root"   , Undefined);
    Original.Insert("items"  , Items);

    Result = New Structure;

    Start      = CurrentUniversalDateInMilliseconds();
    JsonString = OPI_Tools.JSONString(Original, "None", False);
    Result.Insert("JsonSerializationMs", CurrentUniversalDateInMilliseconds() - Start);
    Result.Insert("JsonString"         , JsonString);

    Start        = CurrentUniversalDateInMilliseconds();
    JsonRestored = OPI_Tools.JsonToStructure(JsonString, True);
    Result.Insert("JsonDeserializationMs", CurrentUniversalDateInMilliseconds() - Start);
    Result.Insert("JsonRestored"         , JsonRestored);

    Start           = CurrentUniversalDateInMilliseconds();
    MessagePackData = OPI_MessagePack.SerializeData(Original);
    Result.Insert("MessagePackSerializationMs", CurrentUniversalDateInMilliseconds() - Start);
    Result.Insert("MessagePackData"           , MessagePackData);

    Start               = CurrentUniversalDateInMilliseconds();
    MessagePackRestored = OPI_MessagePack.DeserializeData(MessagePackData);
    Result.Insert("MessagePackDeserializationMs", CurrentUniversalDateInMilliseconds() - Start);
    Result.Insert("MessagePackRestored"         , MessagePackRestored);

    OPI_TestDataRetrieval.Process(Result, "MessagePack", "Benchmark", , Original);