// Token: 0x06000589 RID: 1417 RVA: 0x0001B8F8 File Offset: 0x00019AF8 private global::System.Collections.IEnumerator Measure() { global::System.Collections.Generic.List <global::UnityEngine.GameObject> queue = global::System.Linq.Enumerable.ToList <global::UnityEngine.GameObject>(global::System.Linq.Enumerable.Where <global::UnityEngine.GameObject>(global::System.Linq.Enumerable.Except <global::UnityEngine.GameObject>(global::VRGIN.Helpers.UnityHelper.GetRootNodes(), new global::UnityEngine.GameObject[] { base.gameObject }), (global::UnityEngine.GameObject n) => !n.name.StartsWith("VRGIN") && !n.name.StartsWith("["))); yield return(base.StartCoroutine(this.MeasureFramerate(30))); double startInterval = this._CurrentInterval; global::VRGIN.Core.VRLog.Info("Starting to profile! This might take a while...", global::System.Array.Empty <object>()); while (queue.Count > 0) { global::UnityEngine.GameObject obj = global::System.Linq.Enumerable.First <global::UnityEngine.GameObject>(queue); queue.RemoveAt(0); bool flag = !obj.activeInHierarchy; if (!flag) { obj.SetActive(false); yield return(base.StartCoroutine(this.MeasureFramerate(30))); obj.SetActive(true); double impact = startInterval / this._CurrentInterval; global::VRGIN.Core.VRLog.Info("{0}{1}: {2:0.00}", new object[] { string.Join("", global::System.Linq.Enumerable.ToArray <string>(global::System.Linq.Enumerable.Repeat <string>(" ", obj.transform.Depth()))), obj.name, impact }); bool flag2 = impact > 1.1499999761581421; if (flag2) { queue.InsertRange(0, obj.Children()); foreach (global::UnityEngine.Behaviour component in global::System.Linq.Enumerable.Where <global::UnityEngine.Behaviour>(obj.GetComponents <global::UnityEngine.Behaviour>(), (global::UnityEngine.Behaviour c) => c.enabled)) { component.enabled = false; yield return(base.StartCoroutine(this.MeasureFramerate(30))); component.enabled = true; impact = startInterval / this._CurrentInterval; global::VRGIN.Core.VRLog.Info("{0}{1} [{2}]: {3:0.000}", new object[] { string.Join("", global::System.Linq.Enumerable.ToArray <string>(global::System.Linq.Enumerable.Repeat <string>(" ", obj.transform.Depth()))), obj.name, component.GetType().Name, impact }); component = null; } global::System.Collections.Generic.IEnumerator <global::UnityEngine.Behaviour> enumerator = null; } yield return(null); obj = null; } } global::VRGIN.Core.VRLog.Info("Done!", global::System.Array.Empty <object>()); this._Callback(); global::UnityEngine.Object.Destroy(base.gameObject); yield break; yield break; }