ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Tupitsyn (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-1779) .Net: Evaluate BinaryFormatter overhead for generic collections.
Date Tue, 27 Oct 2015 12:47:27 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-1779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14976285#comment-14976285
] 

Pavel  Tupitsyn edited comment on IGNITE-1779 at 10/27/15 12:47 PM:
--------------------------------------------------------------------

{code:title=PortableSelfTest.cs}
        [Test]
        public void TestArraySerializable()
        {
            var serArr = Enumerable.Range(1, 10000).Select(x => new SerializableObject
{Foo = x}).ToArray();
            var objArr = serArr.OfType<object>().ToArray();

            Console.WriteLine("As serializable: " + _marsh.Marshal(serArr).Length / serArr.Length);
 // 18
            Console.WriteLine("As object array: " + _marsh.Marshal(objArr).Length / serArr.Length);
 // 232
        }

        [Test]
        public void TestArrayWithRawPortables()
        {
            var marsh =
                new PortableMarshaller(new PortableConfiguration
                {
                    TypeConfigurations =
                        new List<PortableTypeConfiguration> { new PortableTypeConfiguration(typeof(PrimitiveFieldRawPortableType))
}
                });


            PrimitiveFieldRawPortableType[] serArr = Enumerable.Range(1, 1000).Select(x =>
new PrimitiveFieldRawPortableType { PDouble = x }).ToArray();
            object[] objArr = serArr.OfType<object>().ToArray();

            Console.WriteLine("As serializable: " + marsh.Marshal(serArr).Length / serArr.Length);
 // 128
            Console.WriteLine("As object array: " + marsh.Marshal(objArr).Length / objArr.Length);
 //  383
        }

{code}


was (Author: ptupitsyn):
{code:title=PortableSelfTest.cs}
        [Test]
        public void TestArraySerializable()
        {
            var serArr = Enumerable.Range(1, 10000).Select(x => new SerializableObject
{Foo = x}).ToArray();
            var objArr = serArr.OfType<object>().ToArray();

            Console.WriteLine("As serializable: " + _marsh.Marshal(serArr).Length / serArr.Length);
 // 18
            Console.WriteLine("As object array: " + _marsh.Marshal(objArr).Length / serArr.Length);
 // 232
        }

        [Test]
        public void TestArrayWithRawPortables()
        {
            var marsh =
                new PortableMarshaller(new PortableConfiguration
                {
                    TypeConfigurations =
                        new List<PortableTypeConfiguration> { new PortableTypeConfiguration(typeof(PrimitiveFieldRawPortableType))
}
                });


            PrimitiveFieldRawPortableType[] serArr = Enumerable.Range(1, 1000).Select(x =>
new PrimitiveFieldRawPortableType { PDouble = x }).ToArray();
            object[] objArr = serArr.OfType<object>().ToArray();

            Console.WriteLine("As serializable: " + marsh.Marshal(serArr).Length / serArr.Length);
            Console.WriteLine("As object array: " + marsh.Marshal(objArr).Length / objArr.Length);
        }

{code}

> .Net: Evaluate BinaryFormatter overhead for generic collections.
> ----------------------------------------------------------------
>
>                 Key: IGNITE-1779
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1779
>             Project: Ignite
>          Issue Type: Task
>          Components: interop
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Pavel  Tupitsyn
>            Priority: Critical
>             Fix For: 1.5
>
>
> It seems that BinaryFormatter is extreeeemly inefficient. I tried to write a single Guid
with and it resulted in >100 bytes comparing to 16 bytes when written in portable form.

> If we notice the same overhead for collections/arrays which are fairly often used types,
we will have to revert to our initial approach when collections were serialized using our
own mechanics.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message