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>"); }
public ReplicatedUpdateEntitySerializeInfo(ComponentSerializerManager instance, IUpdateMessagePool updateMessagePool, string version) { _componentSerializerManager = instance; MessagePool = updateMessagePool; Statistics = new SerializationStatistics("UpdateEntity"); _version = version; }
public ReplicatedUpdateEntitySerializeInfo(ComponentSerializerManager instance, ServerUpdateMessagePool serverUpdateMessagePool, string version, int sendCount = 3) { _componentSerializerManager = instance; MessagePool = serverUpdateMessagePool; Statistics = new SerializationStatistics("UpdateEntity"); _version = version; _sendCount = sendCount; }
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); }