private void ParseMemoryInfo() { string memoryInfo = GPerfPlatform.GetMemoryInfo(); if (!string.IsNullOrEmpty(memoryInfo)) { string[] lines = memoryInfo.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); if (lines != null && lines.Length > 0) { foreach (var line in lines) { GPerfUtil.GetKeyValue(line, out var name, out var value); if (name == MEMORY_TOTAL_KEY) { if (!long.TryParse(value, out m_TotalMemInKB)) { m_TotalMemInKB = 0L; } m_TotalMemInKB /= GPerfUtil.BYTE_TO_MB_SIZE; } else if (name == MEMORY_AVAILABLE_KEY) { if (!long.TryParse(value, out m_AvailableMemInKB)) { m_AvailableMemInKB = 0L; } m_AvailableMemInKB /= GPerfUtil.BYTE_TO_MB_SIZE; } else if (name == MEMORY_THRESHOLD_KEY) { if (!long.TryParse(value, out m_ThresholdInKB)) { m_ThresholdInKB = 0L; } m_ThresholdInKB /= GPerfUtil.BYTE_TO_MB_SIZE; } else if (name == MEMORY_IS_LOW_KEY) { if (!bool.TryParse(value, out m_IsLowMemInKB)) { m_IsLowMemInKB = false; } } else if (name == MEMORY_PSS_KEY) { if (!long.TryParse(value, out m_PssMemInKB)) { m_PssMemInKB = 0L; } } } } } }
private async void GetTemperatureAsync() { var task = Task.Run(() => { #if !UNITY_EDITOR && UNITY_ANDROID AndroidJNI.AttachCurrentThread(); float temp = GPerfPlatform.GetBatteryTemperature(); AndroidJNI.DetachCurrentThread(); #else float temp = GPerfPlatform.GetBatteryTemperature(); #endif return(temp); }); record.Temperature = await task; }
private async void GetDataAsync() { var task = Task.Run(() => { #if !UNITY_EDITOR && UNITY_ANDROID AndroidJNI.AttachCurrentThread(); float temp = GPerfPlatform.GetCPUUsageRate(); AndroidJNI.DetachCurrentThread(); #else float temp = GPerfPlatform.GetCPUUsageRate(); #endif return(temp); }); record.UsageRate = await task; var coreFreqTask = Task.Run(() => { long[] temp; #if !UNITY_EDITOR && UNITY_ANDROID AndroidJNI.AttachCurrentThread(); temp = GPerfPlatform.GetCPUCoreFrequence(); AndroidJNI.DetachCurrentThread(); #else temp = GPerfPlatform.GetCPUCoreFrequence(); #endif return(temp); }); long[] coreFreq = await coreFreqTask; if (coreFreq != null && coreFreq.Length > 0) { record.CoreFrequency = new int[coreFreq.Length]; for (int i = 0; i < coreFreq.Length; ++i) { record.CoreFrequency[i] = (int)(coreFreq[i] / 1000); } } }
public float GetUsageRate() { return(GPerfPlatform.GetCPUUsageRate()); }
public float GetTemperature() { return(GPerfPlatform.GetBatteryTemperature()); }