SaintD Posted August 6, 2007 Report Share Posted August 6, 2007 I ran a .net profiler on Xenocide. Method:Start Xenocide new gameStart profilingRun about 2 days of game time at x3600stop profiling The Data: Sorted by how much time was spent in each function, it's children and any calls it makes to the kernel. Function Name (ticks)ProjectXenocide.Xenocide.Draw(class Microsoft.Xna.Framework.GameTime) 28,237,566,842Microsoft.Xna.Framework.Game.Draw (class Microsoft.Xna.Framework.GameTime) 22,362,649,296ProjectXenocide.UI.Screens.ScreenManager.Draw (class Microsoft.Xna.Framework.GameTime, class Microsoft.Xna.Framework.Graphics.GraphicsDevice) 5,535,996,812ProjectXenocide.UI.Screens.Screen.Draw (class Microsoft.Xna.Framework.GameTime, class Microsoft.Xna.Framework.Graphics.GraphicsDevice) 5,302,282,656ProjectXenocide.UI.Screens.PolarScreen.Draw (class Microsoft.Xna.Framework.GameTime, class Microsoft.Xna.Framework.Graphics.GraphicsDevice) 5,289,625,449ProjectXenocide.UI.Scenes.Common.PolarScene.Draw (class Microsoft.Xna.Framework.GameTime, class Microsoft.Xna.Framework.Graphics.GraphicsDevice, valuetype CeGui.Rect) 5,247,039,391ProjectXenocide.UI.Scenes.Geoscape.GeoscapeScene.Draw (class Microsoft.Xna.Framework.GameTime, class Microsoft.Xna.Framework.Graphics.GraphicsDevice, valuetype CeGui.Rect) 5,229,672,205ProjectXenocide.Xenocide.Update (class Microsoft.Xna.Framework.GameTime) 5,133,861,245ProjectXenocide.UI.Screens.ScreenManager.Update (class Microsoft.Xna.Framework.GameTime) 4,645,863,882ProjectXenocide.UI.Screens.Screen.Update (class Microsoft.Xna.Framework.GameTime) 4,568,945,488ProjectXenocide.UI.Screens.GeoscapeScreen.Update (class Microsoft.Xna.Framework.GameTime) 4,548,534,265ProjectXenocide.UI.Screens.GeoscapeScreen.ScreenState.Update (class Microsoft.Xna.Framework.GameTime) 4,119,844,276ProjectXenocide.UI.Screens.GeoscapeScreen.ViewGeoscapeScreenState.Update (class Microsoft.Xna.Framework.GameTime) 4,095,832,845ProjectXenocide.Model.Geoscape.GeoData.Update (class Microsoft.Xna.Framework.GameTime) 4,028,920,951ProjectXenocide.Model.Geoscape.GeoData.PumpUpdate (class Microsoft.Xna.Framework.GameTime) 3,989,637,397ProjectXenocide.Model.Geoscape.Outposts.Outpost.Update (float64) 2,952,640,481ProjectXenocide.Model.Geoscape.Vehicles.Craft.Update (float64) 2,859,529,312ProjectXenocide.Model.Geoscape.Vehicles.Mission.Update (float64) 2,732,522,921ProjectXenocide.Model.Geoscape.Vehicles.MissionState.Update (float64) 2,452,127,543ProjectXenocide.Model.Geoscape.Vehicles.MissionState.UpdateState (float64) 2,226,195,069ProjectXenocide.Model.Geoscape.Vehicles.InBaseState.UpdateState (float64) 1,942,110,486ProjectXenocide.UI.Scenes.Geoscape.SkyBox.Draw (class Microsoft.Xna.Framework.Graphics.GraphicsDevice, valuetype Microsoft.Xna.Framework.Matrix, class Microsoft.Xna.Framework.Graphics.BasicEffect) 1,600,098,665Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawIndexedPrimitives (valuetype Microsoft.Xna.Framework.Graphics.PrimitiveType, int32,int32,int32,int32,int32) 1,401,238,390ProjectXenocide.Model.Geoscape.Vehicles.Craft.Reload (float64) 1,217,923,499ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.Reload (float64) 1,162,293,643ProjectXenocide.UI.Scenes.Geoscape.EarthGlobe.Draw (class Microsoft.Xna.Framework.Graphics.GraphicsDevice, valuetype Microsoft.Xna.Framework.Matrix, class Microsoft.Xna.Framework.Graphics.BasicEffect) 967,248,451Microsoft.Xna.Framework.Graphics.EffectPass.Begin () 946,633,192ProjectXenocide.UI.Scenes.Geoscape.GeoMarker.Draw (class Microsoft.Xna.Framework.Graphics.GraphicsDevice, valuetype Microsoft.Xna.Framework.Vector3,class Microsoft.Xna.Framework.Graphics.BasicEffect) 874,264,694ProjectXenocide.Model.Geoscape.Vehicles.WeaponPod.Reload (float64,class ProjectXenocide.Model.Geoscape.Outposts.Outpost) 631,900,236ProjectXenocide.Model.Geoscape.AI.Overmind.Update (float64) 477,023,026ProjectXenocide.Model.Geoscape.AI.InvasionTask.Update (float64) 423,703,240ProjectXenocide.Model.Geoscape.AI.ResearchTask.Update (float64) 399,703,774ProjectXenocide.Model.Geoscape.Vehicles.Craft.Refuel (float64) 364,650,210Microsoft.Xna.Framework.Input.GamePad.GetState (valuetype Microsoft.Xna.Framework.PlayerIndex) 343,446,041ProjectXenocide.Model.Geoscape.Vehicles.WeaponPod.get_UsesAmmo () 318,732,198ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.Refuel (float64) 315,486,382System.Object.ToString () 287,081,254Microsoft.Xna.Framework.Graphics.GraphicsDevice.Clear (valuetype Microsoft.Xna.Framework.Graphics.Color) 271,579,516ProjectXenocide.Model.Geoscape.GeoTime.ToString () 270,190,121ProjectXenocide.Model.Geoscape.Vehicles.WeaponPod.get_Clip () 267,490,025ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.get_MaxFuel () 254,998,996ProjectXenocide.Model.Geoscape.Vehicles.MoveToPositionState.UpdateState (float64) 224,481,743System.DateTime.ToString (string, class System.IFormatProvider) 215,390,141ProjectXenocide.UI.Screens.ScreenManager.fpsCalcs () 213,987,613ProjectXenocide.UI.Scenes.Geoscape.GeoscapeScene.ComputeSunAngle () 212,907,212ProjectXenocide.Model.Geoscape.Outposts.Outpost.get_Fleet () 193,752,879System.Collections.IEnumerator.MoveNext () 183,849,108ProjectXenocide.Model.Geoscape.GeoTime.AddMilliseconds (float64) 183,682,637ProjectXenocide.Model.Geoscape.Vehicles.WeaponPod.get_ClipSize () 181,199,109ProjectXenocide.Model.Geoscape.GeoPosition.PolarToCartesian (float32,float32) 138,685,802ProjectXenocide.Model.Geoscape.Vehicles.WeaponPod.get_Weapon () 134,898,332ProjectXenocide.Model.Geoscape.Vehicles.Craft.Repair (float64) 127,977,930ProjectXenocide.UI.Scenes.Geoscape.GeoMarker.geopositionToWorld (valuetype Microsoft.Xna.Framework.Vector3) 125,324,597ProjectXenocide.Model.Geoscape.GeoPosition.PolarToCartesian (valuetype Microsoft.Xna.Framework.Vector3) 120,235,933System.DateTime.get_Now () 113,540,364Microsoft.Xna.Framework.Gamewindow.set_Title (string) 109,400,734ProjectXenocide.UI.Scenes.Geoscape.GeoMarker.setupEffect (class Microsoft.Xna.Framework.Graphics.GraphicsDevice, class Microsoft.Xna.Framework.Graphics.BasicEffect) 94,945,417ProjectXenocide.Model.Geoscape.Vehicles.Craft.CanDrawOnGeoscape () 88,977,864Microsoft.Xna.Framework.Graphics.RenderState.set_CullMode (valuetype Microsoft.Xna.Framework.Graphics.CullMode) 86,996,490ProjectXenocide.UI.Scenes.Common.PolarScene.CalcViewportForSceneWindow (valuetype CeGui.Rect, valuetype Microsoft.Xna.Framework.Graphics.Viewport) 84,478,286ProjectXenocide.Model.Geoscape.Vehicles.Mission.OnDestinationReached () 77,987,373ProjectXenocide.Model.Geoscape.Vehicles.ResearchMission.OnDestinationReached () 77,960,138ProjectXenocide.Model.Geoscape.Vehicles.Craft.OnMissionfinished () 77,253,620ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.get_AircraftItem () 77,025,354ProjectXenocide.Model.Geoscape.GeoTime.DayPassedHandler.Invoke () 76,976,316ProjectXenocide.Model.Geoscape.Vehicles.Ufo.OnMissionfinished () 76,046,347ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.Repair (float64) 67,084,129ProjectXenocide.Model.Geoscape.AI.InvasionTask.OnMissionfinished (class ProjectXenocide.Model.Geoscape.Vehicles.Ufo) 66,369,067ProjectXenocide.Model.StaticData.Items.ItemHandle.get_Item () 65,805,230ProjectXenocide.Model.Geoscape.AI.ResearchTask.OnMissionfinished (class ProjectXenocide.Model.Geoscape.Vehicles.Ufo) 65,647,510Microsoft.Xna.Framework.Graphics.BasicEffect.set_Texture (class Microsoft.Xna.Framework.Graphics.Texture2D) 65,501,262System.IDisposable.Dispose () 64,686,203ProjectXenocide.Model.Geoscape.Outposts.OutpostInventory.get_Fleet () 61,090,014ProjectXenocide.Model.Geoscape.Vehicles.MissionState.DoChecks (float64) 61,020,906System.Collections.Generic.IEnumerable`1.GetEnumerator () 58,528,129ProjectXenocide.Model.Geoscape.GeoData.AddScore (valuetype ProjectXenocide.Model.Participant, float32,class ProjectXenocide.Model.Geoscape.GeoPosition) 58,459,883Microsoft.Xna.Framework.Graphics.GraphicsDevice.set_Viewport (valuetype Microsoft.Xna.Framework.Graphics.Viewport) 56,716,830ProjectXenocide.Model.StaticData.Items.AircraftItem.get_MaxFuel () 55,668,700ProjectXenocide.Model.Geoscape.Geography.Planet.AddScore (valuetype ProjectXenocide.Model.Participant, float32,class ProjectXenocide.Model.Geoscape.GeoPosition) 55,616,735ProjectXenocide.Model.Geoscape.Vehicles.Aircraft.CanDrawOnGeoscape () 55,409,770System.Math.Cos (float64) 54,987,603Microsoft.Xna.Framework.Graphics.GraphicsDevice.set_VertexDeclaration (class Microsoft.Xna.Framework.Graphics.VertexDeclaration) 52,765,373ProjectXenocide.Model.GameState.get_GeoData () 52,442,466ProjectXenocide.Model.Geoscape.Vehicles.Mission.DoChecks (float64) 52,366,036Microsoft.Xna.Framework.Graphics.VertexStream.SetSource (class Microsoft.Xna.Framework.Graphics.VertexBuffer, int32,int32) 52,305,433ProjectXenocide.Model.StaticData.Items.CraftWeaponItem.get_Clip () 51,096,595ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_HomeBase () 49,080,248ProjectXenocide.Model.Geoscape.GeoPosition.GetAzimuth (class ProjectXenocide.Model.Geoscape.GeoPosition) 47,123,263Microsoft.Xna.Framework.Graphics.Effect.get_CurrentTechnique () 47,065,758Microsoft.Xna.Framework.Graphics.GraphicsDevice.set_Indices (class Microsoft.Xna.Framework.Graphics.IndexBuffer) 46,410,380System.Math.Sin (float64) 43,665,201Microsoft.Xna.Framework.Vector3..ctor (float32,float32,float32) 42,785,694System.Collections.Generic.IList`1.get_Item (int32) 42,193,143System.DateTime.get_DayOfYear () 42,141,457ProjectXenocide.Model.StaticData.Items.CraftWeaponItem.get_ClipSize () 41,006,515ProjectXenocide.Model.Geoscape.Vehicles.Mission.get_Craft () 38,780,689ProjectXenocide.UI.Scenes.Geoscape.SphereMesh.get_TotalVertexes () 36,236,764ProjectXenocide.Xenocide.get_GameState () 35,947,872ProjectXenocide.Model.Geoscape.GeoPosition.GetEndpoint (float64,float64) 35,248,013ProjectXenocide.Model.Geoscape.Geography.GeoBitmap.GetPropertyIndexOfLocation (class ProjectXenocide.Model.Geoscape.GeoPosition) 35,019,066Microsoft.Xna.Framework.Graphics.BasicEffect.set_LightingEnabled (bool) 34,317,638CeGui.window.get_Rect () 33,360,062ProjectXenocide.Model.Geoscape.GeoTime.RealTimeToGameTime (valuetype System.TimeSpan) 33,356,847Microsoft.Xna.Framework.Graphics.EffectPass.End () 32,498,745ProjectXenocide.Model.Geoscape.GeoData.get_Outposts () 31,466,068Microsoft.Xna.Framework.Graphics.BasicEffect.set_Projection (valuetype Microsoft.Xna.Framework.Matrix) 31,208,001ProjectXenocide.Model.Geoscape.Geography.Planet.GetRegionAtLocation (class ProjectXenocide.Model.Geoscape.GeoPosition) 30,273,032ProjectXenocide.Model.Geoscape.Vehicles.Mission.get_State () 29,593,973ProjectXenocide.Model.Geoscape.GeoPosition.GetDistance (class ProjectXenocide.Model.Geoscape.GeoPosition) 28,874,769ProjectXenocide.UI.Scenes.Common.PolarScene.GetProjectionMatrix (float32) 28,847,608Microsoft.Xna.Framework.Graphics.RenderState.set_DepthBufferEnable (bool) 28,470,249Microsoft.Xna.Framework.Graphics.BasicEffect.set_TextureEnabled (bool) 27,670,149Microsoft.Xna.Framework.Graphics.BasicDirectionalLight.set_Direction (valuetype Microsoft.Xna.Framework.Vector3) 27,343,270Microsoft.Xna.Framework.Graphics.BasicEffect.set_World (valuetype Microsoft.Xna.Framework.Matrix) 27,077,345Microsoft.Xna.Framework.Graphics.EffectPassCollection.GetEnumerator () 26,912,146ProjectXenocide.Model.Geoscape.Outposts.Floorplan.Update (float64) 26,871,255ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_HullDamage () 26,842,314Microsoft.Xna.Framework.Graphics.BasicEffect.set_Alpha (float32) 26,722,731Microsoft.Xna.Framework.Graphics.BasicEffect.set_View (valuetype Microsoft.Xna.Framework.Matrix) 25,478,989ProjectXenocide.UI.Screens.ScreenManager.get_QuitGame () 25,472,865Microsoft.Xna.Framework.Graphics.GraphicsDevice.get_Viewport () 24,888,672Microsoft.Xna.Framework.Graphics.BasicDirectionalLight.set_Enabled (bool) 24,746,921Microsoft.Xna.Framework.Graphics.Effect.End () 24,305,039ProjectXenocide.Model.Geoscape.Vehicles.MissionState.get_Mission () 24,248,290Microsoft.Xna.Framework.Graphics.Effect.Begin () 23,505,948Microsoft.Xna.Framework.Graphics.BasicEffect.set_DiffuseColor (valuetype Microsoft.Xna.Framework.Vector3) 23,234,486ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_WeaponPods () 22,685,530Microsoft.Xna.Framework.Matrix.CreateRotationY (float32) 21,243,555Microsoft.Xna.Framework.Game.Update (class Microsoft.Xna.Framework.GameTime) 19,813,469System.Collections.Generic.IEnumerator`1.get_Current () 19,712,277System.Collections.Generic.IEnumerator`1.get_Current () 19,193,980System.TimeSpan.get_TotalMilliseconds () 19,120,747Microsoft.Xna.Framework.Matrix.CreatePerspectiveFieldOfView (float32,float32,float32,float32) 19,052,554ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_InBase () 18,691,857ProjectXenocide.Model.Geoscape.GeoData.get_GeoTime () 18,691,288System.Collections.Generic.IEnumerable`1.GetEnumerator () 18,626,350System.Threading.Thread.get_CurrentCulture () 18,593,453Microsoft.Xna.Framework.Graphics.BasicEffect.get_DirectionalLight0 () 18,277,621Microsoft.Xna.Framework.Graphics.RenderState.set_DepthBufferWriteEnable (bool) 18,252,000ProjectXenocide.Model.Geoscape.GeoPosition.get_Polar () 18,144,699System.DateTime.AddMilliseconds (float64) 17,904,713System.Collections.Generic.IEnumerator`1.get_Current () 17,704,838System.Collections.Generic.ICollection`1.get_Count () 16,509,431ProjectXenocide.Model.StaticData.Items.ItemHandle.get_ShotsLeft () 16,456,067Microsoft.Xna.Framework.Matrix.CreateLookAt (valuetype Microsoft.Xna.Framework.Vector3,valuetype Microsoft.Xna.Framework.Vector3,valuetype Microsoft.Xna.Framework.Vector3) 16,349,394ProjectXenocide.UI.Scenes.Geoscape.SphereMesh.get_TotalFaces () 15,468,539System.DateTime.op_Subtraction (valuetype System.DateTime, valuetype System.DateTime) 15,085,794Microsoft.Xna.Framework.Matrix.op_Multiply (valuetype Microsoft.Xna.Framework.Matrix, valuetype Microsoft.Xna.Framework.Matrix) 15,041,261System.Collections.Generic.Stack`1.get_Count () 14,758,593Microsoft.Xna.Framework.Graphics.VertexStreamCollection.get_Item (int32) 14,663,088CeGui.window.set_Text (string) 14,560,163CeGui.window.get_Text () 14,378,709Microsoft.Xna.Framework.Graphics.GraphicsDevice.get_Vertices () 13,605,727ProjectXenocide.Model.Geoscape.AI.InvasionTask.get_Ufos () 13,568,452Microsoft.Xna.Framework.Input.GamePadState.get_Buttons () 12,991,836Microsoft.Xna.Framework.Graphics.VertexPositionNormalTexture.get_SizeInBytes () 12,970,683System.String.op_Inequality (string, string) 12,827,026System.Threading.Thread.get_CurrentThread () 12,818,881ProjectXenocide.Model.Geoscape.GeoData.get_Overmind () 12,692,083System.Collections.Generic.ICollection`1.get_Count () 12,688,520Microsoft.Xna.Framework.Graphics.GraphicsDevice.get_RenderState () 12,448,933System.DateTime.get_TimeOfDay () 12,352,523System.TimeSpan..ctor (int64) 12,118,230Microsoft.Xna.Framework.Graphics.EffectTechnique.get_Passes () 11,940,720System.Collections.Generic.List`1.get_Item (int32) 11,932,779ProjectXenocide.Model.Geoscape.GeoTime.get_Time () 11,556,506ProjectXenocide.Model.ScoreLog.AddScore (valuetype ProjectXenocide.Model.Participant, float32) 11,333,587Microsoft.Xna.Framework.Vector3.op_Multiply (valuetype Microsoft.Xna.Framework.Vector3,float32) 11,210,754System.Collections.Generic.IList`1.get_Item (int32) 10,857,756Microsoft.Xna.Framework.Input.GamePadButtons.get_Back () 9,829,926System.Math.Asin (float64) 9,761,241System.Collections.Generic.ICollection`1.get_Count () 9,748,609System.Collections.Generic.IEnumerable`1.GetEnumerator () 9,549,208Microsoft.Xna.Framework.GameTime.get_ElapsedRealTime () 9,340,671System.Collections.Generic.IEnumerable`1.GetEnumerator () 9,140,207System.Collections.Generic.IEnumerator`1.get_Current () 8,792,525Microsoft.Xna.Framework.GraphicsDeviceManager.get_GraphicsDevice () 8,766,295Microsoft.Xna.Framework.Graphics.Color.get_CornflowerBlue () 8,601,764Microsoft.Xna.Framework.Matrix.CreateRotationX (float32) 8,205,364System.Collections.Generic.List`1.get_Count () 8,083,553System.Collections.Generic.Queue`1.get_Count () 7,990,633MoveNext () 7,943,842System.TimeSpan.get_TotalSeconds () 7,684,762ProjectXenocide.Model.Geoscape.Outposts.Outpost.get_Position () 7,599,607Microsoft.Xna.Framework.Vector3.get_Zero () 7,573,326ProjectXenocide.Model.Geoscape.Geography.GeoBitmap.Tuple.get_Count () 7,457,080ProjectXenocide.Model.Geoscape.AI.Overmind.get_Ufos () 6,926,105Microsoft.Xna.Framework.Graphics.Viewport.get_Height () 6,874,098System.Collections.Generic.SortedList`2.get_Count () 6,694,721System.TimeSpan.op_LessThan (valuetype System.TimeSpan, valuetype System.TimeSpan) 6,393,748Microsoft.Xna.Framework.Graphics.Viewport.set_Width (int32) 6,260,204System.Collections.Generic.List`1.get_Count () 6,210,633Microsoft.Xna.Framework.Graphics.Viewport.get_Width () 5,964,144ProjectXenocide.UI.Screens.PolarScreen.onmousemoveInScene (object, class CeGui.MouseEventArgs) 5,599,455ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_Position () 5,566,724Microsoft.Xna.Framework.Matrix.CreateTranslation (valuetype Microsoft.Xna.Framework.Vector3) 5,131,805ProjectXenocide.UI.Scenes.Common.PolarScene.get_CameraPosition () 4,999,810ProjectXenocide.Utils.Util.IsRightMouseButtonDown () 4,897,012Microsoft.Xna.Framework.MathHelper.ToRadians (float32) 4,801,331ProjectXenocide.Model.Geoscape.Geography.Planet.GetCountryAtLocation (class ProjectXenocide.Model.Geoscape.GeoPosition) 4,753,720Microsoft.Xna.Framework.Matrix.CreateTranslation (float32,float32,float32) 4,655,322CeGui.Rect.get_Width () 4,624,634Microsoft.Xna.Framework.Vector3.get_Up () 4,615,836get_Current () 4,471,235ProjectXenocide.UI.Scenes.Geoscape.SphereMesh.get_TotalIndexes () 4,260,829CeGui.Rect.get_Height () 4,223,780ProjectXenocide.Model.Geoscape.Vehicles.WaitState.UpdateState (float64) 4,166,041Microsoft.Xna.Framework.Graphics.VertexPositionTexture.get_SizeInBytes () 4,007,299ProjectXenocide.UI.Scenes.Common.PolarScene.get_AspectRatio () 3,964,256Microsoft.Xna.Framework.Graphics.Viewport.set_Height (int32) 3,771,795ProjectXenocide.Model.Geoscape.Vehicles.Craft.set_Position (class ProjectXenocide.Model.Geoscape.GeoPosition) 3,654,027Microsoft.Xna.Framework.Graphics.Viewport.set_X (int32) 3,485,925Microsoft.Xna.Framework.Input.Mouse.GetState () 3,458,363Microsoft.Xna.Framework.Graphics.Viewport.set_Y (int32) 3,207,118ProjectXenocide.Utils.Util.StringFormat (string, object[]) 3,127,685ProjectXenocide.Model.Geoscape.Research.ResearchGraph.NextDay () 2,984,966System.Math.Sqrt (float64) 2,749,973System.Collections.Generic.IEnumerator`1.get_Current () 2,718,301ProjectXenocide.Model.Geoscape.Research.ResearchTopic.NextDay () 2,514,364System.String.Format (class System.IFormatProvider, string, object[]) 2,348,190System.Math.Atan2 (float64,float64) 2,096,576ProjectXenocide.Model.Geoscape.GeoPosition..ctor (float32,float32) 2,076,041System.Math.Acos (float64) 2,012,528System.Collections.Generic.IList`1.get_Item (int32) 1,932,901ProjectXenocide.Model.Geoscape.Vehicles.Mission.OnMissionfinished () 1,922,436Microsoft.Xna.Framework.MathHelper.Min (float32,float32) 1,643,094ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_MaxSpeed () 1,554,990ProjectXenocide.Model.Geoscape.XCorp.AddScore (valuetype ProjectXenocide.Model.Participant, float32) 1,233,721ProjectXenocide.UI.Screens.GeoscapeScreen.OnTimeRateButtonclicked (object, class CeGui.GuiEventArgs) 1,206,523ProjectXenocide.UI.Screens.GeoscapeScreen.ScreenState.OnTimeRateButtonclicked (class CeGui.Widgets.PushButton) 1,185,542ProjectXenocide.UI.Screens.GeoscapeScreen.ViewGeoscapeScreenState.OnTimeRateButtnClicked (class CeGui.Widgets.PushButton) 1,111,433ProjectXenocide.Model.Geoscape.Vehicles.Craft.ConsumeFuel (float64) 1,079,176ProjectXenocide.Model.Geoscape.AI.InvasionTask.RemoveUfo (class ProjectXenocide.Model.Geoscape.Vehicles.Ufo) 959,175System.Collections.Generic.ICollection`1.Remove (!0) 952,252ProjectXenocide.Model.Geoscape.Vehicles.Ufo.CanDrawOnGeoscape () 903,321ProjectXenocide.Model.Geoscape.AI.ResearchTask.SpawnUfo () 896,642ProjectXenocide.Model.Geoscape.Vehicles.Ufo..ctor (string, class ProjectXenocide.Model.Geoscape.GeoPosition, class ProjectXenocide.Model.Geoscape.AI.InvasionTask) 700,167ProjectXenocide.Model.Geoscape.Vehicles.Craft.get_Hunters () 596,218ProjectXenocide.Model.Geoscape.Vehicles.Mission.OnTimerFinished () 577,134ProjectXenocide.Model.Geoscape.Vehicles.ResearchMission.OnTimerFinished () 569,026System.Object..ctor () 538,218ProjectXenocide.Model.Geoscape.Vehicles.MissionState.OnMissionfinished () 430,873ProjectXenocide.Model.Geoscape.Vehicles.MoveToPositionState..ctor (class ProjectXenocide.Model.Geoscape.Vehicles.Mission, class ProjectXenocide.Model.Geoscape.GeoPosition) 387,710Microsoft.Xna.Framework.Input.MouseState.get_RightButton () 286,590ProjectXenocide.Model.Geoscape.GeoPosition.RandomLocation (class ProjectXenocide.Model.Geoscape.GeoPosition, float64) 252,976ProjectXenocide.Model.Geoscape.Research.ResearchTopic.get_IsResearched () 188,083ProjectXenocide.UI.Screens.GeoscapeScreen.IsButton (class CeGui.Widgets.PushButton, string) 168,662ProjectXenocide.Model.Geoscape.Vehicles.ResearchMission.CalcNewDestination () 160,694Microsoft.Xna.Framework.Game.get_Window () 88,576ProjectXenocide.Model.Geoscape.Vehicles.Craft..ctor (string, string, class ProjectXenocide.Model.Geoscape.GeoPosition) 78,123ValueCollection.GetEnumerator () 75,459ProjectXenocide.Model.Geoscape.Vehicles.Mission.SetState (class ProjectXenocide.Model.Geoscape.Vehicles.MissionState) 69,357System.Collections.Generic.IList`1.set_Item (int32,!0) 68,236ProjectXenocide.Resources.Strings.get_UFO_NAME () 52,864System.Resources.ResourceManager.GetString (string) 50,433MoveNext () 49,740ProjectXenocide.Model.StaticData.Items.ItemCollection.get_Item (string) 48,570System.Collections.Generic.SortedList`2.get_Item (!0) 46,674System.Resources.ResourceManager.GetString (string, class System.Globalization.CultureInfo) 44,934ProjectXenocide.Model.MonthlyLog.get_ThisMonth () 43,510ProjectXenocide.Xenocide.get_Instance () 39,478get_Current () 35,088ProjectXenocide.Model.Geoscape.Vehicles.WaitState..ctor (class ProjectXenocide. Model.Geoscape.Vehicles.Mission, float64) 32,686ProjectXenocide. Model.MonthlyLog.set_Item (int32,int32) 27,765System.Random.Next (int32) 27,553ProjectXenocide. Model.Geoscape.Vehicles.MissionState..ctor (class ProjectXenocide. Model.Geoscape.Vehicles.Mission) 25,223ProjectXenocide. Resources.Strings.get_ResourceManager () 24,617ProjectXenocide. Model.Geoscape.Vehicles.MissionState..ctor (class ProjectXenocide. Model.Geoscape.Vehicles.Mission, float64) 24,538System.DateTime.get_Month () 24,407ProjectXenocide. Model.Geoscape.Vehicles.Craft..ctor (class ProjectXenocide. Model.StaticData.Items.Item, string, class ProjectXenocide. Model.Geoscape.GeoPosition) 23,519System.String.EndsWith (string) 22,788ProjectXenocide. Model.Geoscape.GeoTime.set_TimeRatio (float32) 19,893ProjectXenocide. Model.Geoscape.Vehicles.ResearchMission..ctor (class ProjectXenocide. Model.Geoscape.Vehicles.Craft, class ProjectXenocide. Model.Geoscape.GeoPosition) 17,025ProjectXenocide. Model.MonthlyLog.DateToIndex (valuetype System.DateTime) 14,825System.Object.ReferenceEquals (object, object) 13,332CeGui.window.get_Name () 11,426ProjectXenocide. Model.Geoscape.Vehicles.MissionState.OnExitState () 10,079ProjectXenocide. Model.Geoscape.GeoPosition.RandomLocation () 10,009ProjectXenocide. Model.Geoscape.Vehicles.Ufo.get_Task () 9,505ProjectXenocide. Model.Geoscape.Vehicles.Craft.get_NumHardpoints () 9,179ProjectXenocide. Model.Geoscape.AI.InvasionTask.AddUfo (class ProjectXenocide. Model.Geoscape.Vehicles.Ufo) 8,494ProjectXenocide. Model.Geoscape.Vehicles.MissionState.OnEnterState () 8,394ProjectXenocide. Model.Geoscape.GeoPosition..ctor (class ProjectXenocide. Model.Geoscape.GeoPosition) 8,069ProjectXenocide. Xenocide.get_Rng () 7,708ProjectXenocide. Model.Geoscape.Vehicles.ResearchMission.CalcSecondsOnGround () 5,667System.Collections.Generic.List`1.GetEnumerator () 5,494ProjectXenocide. Model.Geoscape.Vehicles.Craft.get_CraftItem () 4,848ProjectXenocide. Model.Geoscape.Vehicles.WeaponPod..ctor (class ProjectXenocide. Model.StaticData.Items.CraftWeaponItem) 4,490System.Collections.Generic.Dictionary`2.get_Values () 3,406System.Collections.Generic.ICollection`1.Add (!0) 2,914ProjectXenocide. Model.StaticData.Items.ItemHandle..ctor (class ProjectXenocide. Model.StaticData.Items.Item, class ProjectXenocide. Model.StaticData.Items.Item, int32) 2,779ProjectXenocide. Model.StaticData.Items.ItemHandle..ctor (class ProjectXenocide. Model.StaticData.Items.Item) 2,467ProjectXenocide. Model.Geoscape.GeoPosition.get_Longitude () 2,334ProjectXenocide. Model.StaticData.Items.CraftItem.get_NumHardpoints () 2,107ProjectXenocide. Model.Geoscape.AI.InvasionTask.get_Overmind () 1,865ProjectXenocide. Model.MonthlyLog.get_Item (int32) 1,763ProjectXenocide. Model.StaticData.Items.CraftItem.get_MaxSpeed () 1,511System.Collections.Generic.List`1..ctor () 1,471ProjectXenocide. Model.Geoscape.GeoPosition.KilometersToRadians (float64) 1,369ProjectXenocide. Model.Geoscape.Vehicles.Ufo.get_UfoItem () 1,301ProjectXenocide. Model.StaticData.Items.UfoItem.get_Weapon () 1,203ProjectXenocide. Model.Geoscape.Vehicles.Mission..ctor (class ProjectXenocide. Model.Geoscape.Vehicles.Craft) 1,108System.Collections.Generic.List`1.get_Item (int32) 946ProjectXenocide. Model.Geoscape.Vehicles.Craft.set_Mission (class ProjectXenocide. Model.Geoscape.Vehicles.Mission) 925ProjectXenocide. Model.StaticTables.get_ItemList () 851ProjectXenocide. Model.Geoscape.Geography.PlanetRegion.get_ScoreLog () 846ProjectXenocide. Model.Geoscape.Vehicles.Craft.get_Mission () 671ProjectXenocide. Model.Geoscape.GeoPosition.get_Latitude () 489ProjectXenocide. Xenocide.get_StaticTables () 474System.Collections.Generic.List`1.get_Item (int32) 452ProjectXenocide. Model.Geoscape.Vehicles.ResearchMission.CalcNumberLandings () 324ProjectXenocide. Model.Geoscape.Geography.Country.get_ScoreLog () 243ProjectXenocide. Model.Geoscape.Geography.GeoBitmap.Tuple.get_Index () 237ProjectXenocide. Model.Geoscape.Geography.Country.get_Region () 168 Link to comment Share on other sites More sharing options...
[dteviot] Posted August 7, 2007 Report Share Posted August 7, 2007 Well, I'll state the obvious, from this the big consumer of time is the render, not the state updating.ProjectXenocide.Xenocide.Draw(class Microsoft.Xna.Framework.GameTime) 28,237,566,842ProjectXenocide.Xenocide.Update (class Microsoft.Xna.Framework.GameTime) 5,133,861,245Of course, the test is probably just running one base, with three craft that sit in the base and a single UFO at any one time.So, for a real stress test, we should have 8 bases, 12 UFOs running around the Geoscape, 12 aircraft chasing the UFOs, and another 24 craft sitting in their bases.It's also not been specified which build is running, which would indicate which features are present. As I see no references to IsWithin() I assume this ISN'T doing visibility testing. Link to comment Share on other sites More sharing options...
SaintD Posted August 7, 2007 Author Report Share Posted August 7, 2007 Well, I'll state the obvious, from this the big consumer of time is the render, not the state updating.ProjectXenocide.Xenocide.Draw(class Microsoft.Xna.Framework.GameTime) 28,237,566,842ProjectXenocide.Xenocide.Update (class Microsoft.Xna.Framework.GameTime) 5,133,861,245Of course, the test is probably just running one base, with three craft that sit in the base and a single UFO at any one time.So, for a real stress test, we should have 8 bases, 12 UFOs running around the Geoscape, 12 aircraft chasing the UFOs, and another 24 craft sitting in their bases.It's also not been specified which build is running, which would indicate which features are present. As I see no references to IsWithin() I assume this ISN'T doing visibility testing. I just built the latest version, started a new game and let it run. So you are correct about the test. Do you have a save game (does that work yet?) set up like you describe? I am all set up to do this test easily again. -D Link to comment Share on other sites More sharing options...
[dteviot] Posted August 7, 2007 Report Share Posted August 7, 2007 Well, I'll state the obvious, from this the big consumer of time is the render, not the state updating.ProjectXenocide.Xenocide.Draw(class Microsoft.Xna.Framework.GameTime) 28,237,566,842ProjectXenocide.Xenocide.Update (class Microsoft.Xna.Framework.GameTime) 5,133,861,245Of course, the test is probably just running one base, with three craft that sit in the base and a single UFO at any one time.So, for a real stress test, we should have 8 bases, 12 UFOs running around the Geoscape, 12 aircraft chasing the UFOs, and another 24 craft sitting in their bases.It's also not been specified which build is running, which would indicate which features are present. As I see no references to IsWithin() I assume this ISN'T doing visibility testing. I just built the latest version, started a new game and let it run. So you are correct about the test. Do you have a save game (does that work yet?) set up like you describe? I am all set up to do this test easily again. -DUnfortunately, no I don't have a save game to test that. Mainly because it needs code changes.For starters, the existing code only launches one UFO at a time, and the UFO ends it's mission after a number of hours. And a craft finishes it's mission when it runs out of fuel and returns to base, or attacks and destroys a UFO.So, at minimum would require:1. New "random walk" mission for UFOs. (This one's easy to implement)2. New mission for aircraft, where it chases a UFO until it runs out of fuel, returns to base, and then goes after UFO again when it is refueled. And it doesn't destroy a UFO when (if) it ever catches it. (This one will probably take a few hours to write.)3. Adding test code to launch multiple UFO missions, and hook an aircraft to each UFO. I'm guessing about a day to get everything written, and hooked up to a "stress test" button on the geoscape. Might do that once I get the rest of the bits together for the progress release. Link to comment Share on other sites More sharing options...
SaintD Posted August 8, 2007 Author Report Share Posted August 8, 2007 (edited) I'm guessing about a day to get everything written, and hooked up to a "stress test" button on the geoscape. Might do that once I get the rest of the bits together for the progress release. Sounds great. Let me know when you have what you want. We should make the test configurable so I can crank up the stress to the absolute maximum we can imagine anyone getting in game. If we can run with dozens of UFO's, Radars and Interceptors at a time, we will know we can handle 99% of games. -D Edited August 8, 2007 by SaintD Link to comment Share on other sites More sharing options...
red knight Posted August 9, 2007 Report Share Posted August 9, 2007 SaintD, take a look at the trial version of AutomatedQA AQTime it rocks to do profiling. Was the thing that I wanted to do but didnt have enough time yet to do it. GreetingsRed Knight Link to comment Share on other sites More sharing options...
Recommended Posts