Exemplo n.º 1
0
        public void PrintDebugInfo(StringBuilder sb)
        {
            sb.Append("full:").Append(_replicatedSnapshotSerializeInfo.SnapshotReplicator.SendChannel.FullCount)
            .Append(", diff").Append(_replicatedSnapshotSerializeInfo.SnapshotReplicator.SendChannel.DiffCount)
            .Append(", skip").Append(_replicatedSnapshotSerializeInfo.SnapshotReplicator.SendChannel.SkipCount)
            .Append("<br>");
            sb.Append("<table width='400px' border='1' align='center' cellpadding='2' cellspacing='1'>");
            sb.Append("<thead>");
            sb.Append("<td>name</td>");
            sb.Append("<td>write count</td>");
            sb.Append("<td>write size</td>");
            sb.Append("<td>avg write size</td>");
            sb.Append("<td>last write size</td>");
            sb.Append("<td>read count</td>");
            sb.Append("<td>read size</td>");
            sb.Append("<td>avg read size</td>");
            sb.Append("<td>last read size</td>");
            sb.Append("</thead>");

            foreach (var info in _serializeInfo)
            {
                if (info != null)
                {
                    SerializationStatistics st = info.Statistics;
                    sb.Append("<tr>");
                    sb.Append("<td>");
                    sb.Append(st.Name);
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.TotalSerializeCount);
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.TotalSerializeSize);
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.TotalSerializeSize / (st.TotalSerializeCount + 1));
                    sb.Append("</td>");

                    sb.Append("<td>");
                    sb.Append(st.LatestSerializeSize);
                    sb.Append("</td>");

                    sb.Append("<td>");
                    sb.Append(st.TotalDeserializeCount);
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.TotalDeserializeSize);
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.TotalDeserializeSize / (st.TotalDeserializeCount + 1));
                    sb.Append("</td>");
                    sb.Append("<td>");
                    sb.Append(st.LatestDeserializeSize);
                    sb.Append("</td>");
                    sb.Append("</tr>");
                }
            }

            sb.Append("</table>");
        }
Exemplo n.º 2
0
        public ReplicatedUpdateEntitySerializeInfo(ComponentSerializerManager instance,
                                                   IUpdateMessagePool updateMessagePool, string version)
        {
            _componentSerializerManager = instance;
            MessagePool = updateMessagePool;
            Statistics  = new SerializationStatistics("UpdateEntity");

            _version = version;
        }
Exemplo n.º 3
0
        public ReplicatedUpdateEntitySerializeInfo(ComponentSerializerManager instance,
                                                   ServerUpdateMessagePool serverUpdateMessagePool, string version, int sendCount = 3)
        {
            _componentSerializerManager = instance;
            MessagePool = serverUpdateMessagePool;
            Statistics  = new SerializationStatistics("UpdateEntity");

            _version   = version;
            _sendCount = sendCount;
        }
Exemplo n.º 4
0
 public ProtoBufSerializeInfo(MessageParser parser)
 {
     _statistics = new SerializationStatistics(typeof(T).Name);
 }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var st = new Stopwatch();

            st.Start();

#if DEBUG
            SerializationStatistics stats = null;
#endif

            AppChangesResponse response = (AppChangesResponse)value;
            writer.WriteStartObject();
            writer.WritePropertyName("MDT");
            serializer.Serialize(writer, response.MDT);
            writer.WritePropertyName("NV");
            serializer.Serialize(writer, response.NV);
            writer.Flush();
            writer.WritePropertyName("MD");
            writer.WriteStartArray();
            for (int i = 0; i < response.MD.Count; i++)
            {
#if DEBUG
                if (CollectStats)
                {
                    var stringWriter = new StringWriter();
                    var obj          = response.MD[i];
                    st.Reset();
                    st.Start();
                    serializer.Serialize(stringWriter, response.MD[i]);
                    var result = stringWriter.ToString();
                    writer.WriteRawValue(result);
                    st.Stop();
                    stats = stats ?? new SerializationStatistics();
                    stats.Register(response.MD[i], result, st.ElapsedMilliseconds);
                }
                else
                {
#endif
                serializer.Serialize(writer, response.MD[i]);
#if DEBUG
            }
#endif
                writer.Flush();
            }
            writer.WriteEndArray();

            writer.WritePropertyName("VD");
            serializer.Serialize(writer, response.VD);
            writer.WritePropertyName("RM");
            serializer.Serialize(writer, response.RM);
            if (response.SW != null)
            {
                writer.WritePropertyName("SW");
                serializer.Serialize(writer, response.SW);
            }
            writer.WriteEndObject();
            writer.Flush();
#if DEBUG
            if (CollectStats && stats != null)
            {
                stats.DumpStats();
            }
#endif
            st.Stop();
            System.Diagnostics.Trace.TraceInformation(">>>>>>>>>>>>>>>>> REQUEST RESPONSE Serialization time " + st.ElapsedMilliseconds);
        }