diff --git a/Assets/Scripts/Studio/Connect/StudioEntityWithState.cs b/Assets/Scripts/Studio/Connect/StudioEntityWithState.cs index bf8eed4c..9be8c4b5 100644 --- a/Assets/Scripts/Studio/Connect/StudioEntityWithState.cs +++ b/Assets/Scripts/Studio/Connect/StudioEntityWithState.cs @@ -19,6 +19,10 @@ namespace Studio.Setting.Connect private string? message; public string? Message { get => message; } + public DateTime lastRequestTime; + public DateTime lastResponseTime; + public TimeSpan elapsedTime; + public StudioEntityWithState() { } diff --git a/Assets/Scripts/Studio/Connect/StudioService.cs b/Assets/Scripts/Studio/Connect/StudioService.cs index ea510315..137dcd07 100644 --- a/Assets/Scripts/Studio/Connect/StudioService.cs +++ b/Assets/Scripts/Studio/Connect/StudioService.cs @@ -67,6 +67,8 @@ namespace Studio //Que에 담아둔다? private void OnTopicList(string type, Dictionary> entities) { + //데이터 시간 체크 , entity의 총 크기,type에 따라 각자 시간 계산 + // entities가 type + rawdata {type : {entity}, {entity} ...} foreach (var idKey in entities) { UpdateTopicData(type, idKey.Key, idKey.Value); @@ -77,7 +79,6 @@ namespace Studio { if (!updateTime.ContainsKey(type)) updateTime.Add(type, 0.5f); - var time = updateTime[type]; var task = Task.Run(async () => @@ -130,19 +131,23 @@ namespace Studio public async Task LoadBaseData(string url) { + DateTime startTime = DateTime.Now; System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); StudioEntityWithState data = await repository.BaseInfo(url); sw.Stop(); + DateTime endTime = DateTime.Now; var t = sw.ElapsedMilliseconds; - if (data.State.Equals(APIState.Loaded)) { if (!baseData.ContainsKey(url)) baseData.Add(url, new()); + data.lastRequestTime = startTime; + data.lastResponseTime = endTime; + data.elapsedTime = sw.Elapsed; baseData[url] = data; CheckAPIBoarder(data.Entity.ToString(), data.ReqSize, url, t); UpdateEntity(url, data.Entity.ToString()); @@ -165,7 +170,7 @@ namespace Studio maxResponseTimeApi = url; } - if (maxReponesSize > byteSize) + if (maxReponesSize < byteSize) { maxReponesSize = byteSize; maxResponseApi = url; diff --git a/Assets/TMPFolder/Panel_Repository.cs b/Assets/TMPFolder/Panel_Repository.cs index 224e589d..6869e90d 100644 --- a/Assets/TMPFolder/Panel_Repository.cs +++ b/Assets/TMPFolder/Panel_Repository.cs @@ -36,6 +36,10 @@ namespace XED.UI float rawDataOriginHeight; RectTransform RawDataFoldButton; bool isRawDataFoldOn; + TextMeshProUGUI PacketSize; + TextMeshProUGUI LastRequestTime; + TextMeshProUGUI LastResponseTime; + TextMeshProUGUI ElapsedTime; public override void AfterAwake() { @@ -91,15 +95,25 @@ namespace XED.UI { RawData.text = JsonConvert.SerializeObject(baseDataValue.Entity, Formatting.Indented); - rawDataRect = RawData.GetComponent(); - rawDataOriginHeight = RawData.preferredHeight; rawDataOriginHeight = Mathf.Max(rawDataFoldHeight, rawDataOriginHeight); + rawDataRect = RawData.GetComponent(); Vector2 sizeDelta = rawDataRect.sizeDelta; sizeDelta.y = rawDataOriginHeight; rawDataRect.sizeDelta = sizeDelta; + var byteSize = System.Text.Encoding.Default.GetBytes(baseDataValue.Entity.ToString()).Length; + PacketSize.text = byteSize.ToString(); + LastRequestTime.text = baseDataValue.lastRequestTime.ToString(); + LastResponseTime.text = baseDataValue.lastResponseTime.ToString(); + + var elapsed = baseDataValue.elapsedTime; + int minutes = elapsed.Minutes; + int seconds = elapsed.Seconds; + int milliseconds = elapsed.Milliseconds; + ElapsedTime.text = $"{minutes:D2}:{seconds:D2}.{milliseconds:D3}"; + Info_API.gameObject.SetActive(false); Info_BaseInfo.gameObject.SetActive(true); } diff --git a/Assets/TMPFolder/Test.unity b/Assets/TMPFolder/Test.unity index ea008843..38c4f273 100644 --- a/Assets/TMPFolder/Test.unity +++ b/Assets/TMPFolder/Test.unity @@ -683,7 +683,7 @@ GameObject: - component: {fileID: 34826934} - component: {fileID: 34826933} m_Layer: 0 - m_Name: 1 + m_Name: ElapsedTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3165,7 +3165,7 @@ GameObject: - component: {fileID: 217618654} - component: {fileID: 217618653} m_Layer: 0 - m_Name: 1 + m_Name: LastRequestTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3253,7 +3253,7 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 + m_TextWrappingMode: 0 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} @@ -26581,7 +26581,7 @@ GameObject: - component: {fileID: 1480168123} - component: {fileID: 1480168124} m_Layer: 0 - m_Name: PacketSize (2) + m_Name: LastResponseTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -29557,7 +29557,7 @@ GameObject: - component: {fileID: 1689654371} - component: {fileID: 1689654372} m_Layer: 0 - m_Name: PacketSize (3) + m_Name: ElapsedTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -30271,7 +30271,7 @@ GameObject: - component: {fileID: 1746275389} - component: {fileID: 1746275390} m_Layer: 0 - m_Name: PacketSize (1) + m_Name: LastRequestTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -34181,7 +34181,7 @@ GameObject: - component: {fileID: 2007676931} - component: {fileID: 2007676930} m_Layer: 0 - m_Name: 1 + m_Name: LastResponseTime m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -34269,7 +34269,7 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_TextWrappingMode: 1 + m_TextWrappingMode: 0 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} @@ -35391,7 +35391,7 @@ GameObject: - component: {fileID: 2091839433} - component: {fileID: 2091839432} m_Layer: 0 - m_Name: 1 + m_Name: PacketSize m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0