Beispiel #1
0
    void Start()
    {
        Application.targetFrameRate = 60;

        GPerfMonitor.GetInstance().OpenRecorder(RecorderType.Remote);
        //GPerfMonitor.GetInstance().OpenRecorder(RecorderType.Console);
        //GPerfMonitor.GetInstance().OpenRecorder(RecorderType.File);
    }
Beispiel #2
0
        protected override void OnSample()
        {
#if GPERF_XLUA
            LuaEnv luaEnv = GPerfMonitor.GetInstance().XLuaEnv;
            if (luaEnv != null)
            {
                record.TotalMem = luaEnv.GetTotalMemory();
            }
#endif
        }
Beispiel #3
0
        public override void DoEnd()
        {
            AppRecord appRecord = (AppRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.App);

            if (appRecord != null)
            {
                m_Session.App              = new GPerfApp();
                m_Session.App.Identifier   = appRecord.Identifier;
                m_Session.App.InstallName  = appRecord.InstallName;
                m_Session.App.ProductName  = appRecord.ProductName;
                m_Session.App.Version      = appRecord.Version;
                m_Session.App.UnityVersion = appRecord.EngineVersion;
            }

            DeviceRecord deviceRecord = (DeviceRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.Device);

            if (deviceRecord != null)
            {
                m_Session.Device                  = new GPerfDevice();
                m_Session.Device.Name             = deviceRecord.Name;
                m_Session.Device.Model            = deviceRecord.Model;
                m_Session.Device.UniqueIdentifier = deviceRecord.UniqueIdentifier;

                m_Session.Device.GraphicsName       = deviceRecord.GraphicsName;
                m_Session.Device.GraphicsType       = deviceRecord.GraphicsType;
                m_Session.Device.GraphicsVendor     = deviceRecord.GraphicsVendor;
                m_Session.Device.GraphicsVersion    = deviceRecord.GraphicsVersion;
                m_Session.Device.GraphicsMemoryInMb = deviceRecord.GraphicsMemoryInMB;

                m_Session.Device.SystemMemoryInMb = deviceRecord.SystemMemorySize;
            }

            Dictionary <string, string> customGameInfo = GPerfMonitor.GetInstance().CustomSamplingInfoDic;

            if (customGameInfo.Count > 0)
            {
                m_Session.GameInfo = new GPerfGameInfo();
                m_Session.GameInfo.Extensions.Add(customGameInfo);
            }

            LogRecord logRecord = (LogRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.Log);

            SendToServer(m_Session, logRecord?.FilePath);
        }
Beispiel #4
0
    private void OnGUI()
    {
        GUILayout.BeginArea(new Rect(0, 60, Screen.width, Screen.height));
        {
            if (GUILayout.Button(m_IsRunning ? "Stop" : "Start", GUILayout.Height(80)))
            {
                if (m_IsRunning)
                {
                    GPerfMonitor.GetInstance().Shuntdown();
                }
                else
                {
                    GPerfMonitor.GetInstance().Startup();
                }
                m_IsRunning = !m_IsRunning;
            }

            if (GUILayout.Button("PrintLog", GUILayout.Height(80)))
            {
                Debug.Log("Test LOg");
            }
        }
        GUILayout.EndArea();
    }
Beispiel #5
0
        public override void DoRecord()
        {
            GPerfSample sample = new GPerfSample();

            sample.Timestamp = (uint)((DateTime.Now - m_OrgTime).Ticks / 10000000);

            FPSRecord fpsRecord = (FPSRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.FPS);

            if (fpsRecord != null)
            {
                sample.Fps               = new GPerfFPS();
                sample.Fps.Fps           = fpsRecord.FPS;
                sample.Fps.DeltaTimeInMS = fpsRecord.DeltaTimeInMS;
            }

            CPURecord cpuRecord = (CPURecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.CPU);

            if (cpuRecord != null)
            {
                sample.Cpu           = new GPerfCPU();
                sample.Cpu.CoreCount = cpuRecord.CoreCount;
                sample.Cpu.Frequency = cpuRecord.Frequency;
                sample.Cpu.UsageRate = cpuRecord.UsageRate;
                sample.Cpu.CoreFrequency.AddRange(cpuRecord.CoreFrequency);
            }

            SystemMemoryRecord memoryRecord = (SystemMemoryRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.SystemMemory);

            if (memoryRecord != null)
            {
                sample.SystemMemory               = new GPerfSystemMemory();
                sample.SystemMemory.TotalInKb     = memoryRecord.TotalMemInKB;
                sample.SystemMemory.AvailableInKb = memoryRecord.AvailableMemInKB;
                sample.SystemMemory.ThresholdInKb = memoryRecord.ThresholdInKB;
                sample.SystemMemory.IsLow         = memoryRecord.IsLowMem;
                sample.SystemMemory.PssInKb       = memoryRecord.PSSMemInKB;
            }

            ProfilerMemoryRecord profilerMemoryRecord = (ProfilerMemoryRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.ProfilerMemory);

            if (profilerMemoryRecord != null)
            {
                sample.ProfilerMemory = new GPerfProfilerMemory();
                sample.ProfilerMemory.MonoHeapSizeInKb               = profilerMemoryRecord.MonoHeapSizeInKB;
                sample.ProfilerMemory.MonoUsedSizeInKb               = profilerMemoryRecord.MonoUsedSizeInKB;
                sample.ProfilerMemory.TempAllocatorSizeInKb          = profilerMemoryRecord.TempAllocatorSizeInKB;
                sample.ProfilerMemory.TotalAllocatorSizeInKb         = profilerMemoryRecord.TotalAllocatorSizeInKB;
                sample.ProfilerMemory.TotalReservedSizeInKb          = profilerMemoryRecord.TotalReservedSizeInKB;
                sample.ProfilerMemory.TotalUnusedReservedSizeInKb    = profilerMemoryRecord.TotalUnusedReservedSizeInKB;
                sample.ProfilerMemory.AllocatedForGraphicsDriverInKb = profilerMemoryRecord.AllocatedForGraphicsDriverInKB;
            }

            XLuaMemoryRecord luaMemoryRecord = (XLuaMemoryRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.XLuaMemory);

            if (luaMemoryRecord != null)
            {
                sample.LuaMemory       = new GPerfLuaMemory();
                sample.LuaMemory.Total = luaMemoryRecord.TotalMem;
            }

            BatteryRecord batteryRecord = (BatteryRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.Battery);

            if (batteryRecord != null)
            {
                sample.Battery             = new GPerfBattery();
                sample.Battery.Temperature = batteryRecord.Temperature;
                sample.Battery.Status      = batteryRecord.Status;
                sample.Battery.StatusDesc  = batteryRecord.StatusDesc;
                sample.Battery.Rate        = batteryRecord.Rate;
            }

            FrameTimeRecord frameTimeRecord = (FrameTimeRecord)GPerfMonitor.GetInstance().GetSamplerRecord(SamplerMetricType.FrameTime);

            if (frameTimeRecord != null)
            {
                sample.FrameTime = new GPerfFrameTime();
                sample.FrameTime.PlayerLoopTime = frameTimeRecord.PlayerLoopTime;
                sample.FrameTime.RenderingTime  = frameTimeRecord.RenderingTime;
                sample.FrameTime.ScriptTime     = frameTimeRecord.ScriptTime;
                sample.FrameTime.PhysicsTime    = frameTimeRecord.PhysicsTime;
                sample.FrameTime.AnimationTime  = frameTimeRecord.AnimationTime;
                sample.FrameTime.CpuTime        = frameTimeRecord.CPUFrameTime;
                sample.FrameTime.GpuTime        = frameTimeRecord.GPUFrameTime;
            }

            Dictionary <string, string> customSamplingInfo = GPerfMonitor.GetInstance().CustomSamplingInfoDic;

            if (customSamplingInfo.Count > 0)
            {
                sample.UserInfo = new GPerfUserInfo();
                sample.UserInfo.Extensions.Add(customSamplingInfo);
            }

            sample.FrameIndex = Time.frameCount;

            m_Session.Samples.Add(sample);
        }