Exemple #1
0
        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;
                            }
                        }
                    }
                }
            }
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
                }
            }
        }
Exemple #4
0
 public float GetUsageRate()
 {
     return(GPerfPlatform.GetCPUUsageRate());
 }
Exemple #5
0
 public float GetTemperature()
 {
     return(GPerfPlatform.GetBatteryTemperature());
 }