Beispiel #1
0
        public void MessageSerializeDeserialize()
        {
            var log = new WM.Logger();

            var udpClient = new UdpClient();

            var udpSend = new WM.Net.UDPSend(udpClient, log);

            udpSend.remoteIP   = "127.0.0.1";
            udpSend.remotePort = 8890;
            udpSend.Init();

            var avatarState = new WM.Net.AvatarState();

            {
                // To skip one-time Xml serializer initialization.
                var messageXML = WM.Net.Message.EncodeObjectAsXml(avatarState);
            }

            var numIterations = 1000;

            {
                var start = DateTime.Now;

                for (int i = 0; i < numIterations; ++i)
                {
                    var messageXML = WM.Net.Message.EncodeObjectAsXml(avatarState);

                    udpSend.SendString(messageXML);
                }

                var end = DateTime.Now;

                log.Enabled = true;

                log.Debug("Sending " + numIterations + " times an XML Message encoded AvatarState took " + (end - start).TotalMilliseconds);

                log.Enabled = false;
            }

            {
                var MessageBeginTag = @"<Message>";
                var MessageEndTag   = @"<\Message>";

                var start = DateTime.Now;

                for (int i = 0; i < numIterations; ++i)
                {
                    var message = Message.EncodeObject(avatarState);

                    udpSend.SendString(MessageBeginTag);

                    udpSend.Send(message.Data);

                    udpSend.SendString(MessageEndTag);
                }

                var end = DateTime.Now;

                log.Enabled = true;

                log.Debug("Sending " + numIterations + " times a Binary encoded AvatarState took " + (end - start).TotalMilliseconds);

                log.Enabled = false;
            }
        }