View Issue Details

IDProjectCategoryView StatusLast Update
0005660DarkRadiantSaving and loadingpublic02.07.2021 16:02
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version2.13.0 
Target Version2.13.0Fixed in Version2.13.0 
Summary0005660: Map Loading Performance Improvements
DescriptionA quick profile run reveals a few low-hanging fruits which can speed up the loading process a bit.

entity::NamespaceManager::NamespaceManager 1257 (13,85 %)

The constructor is calling the XmlRegistry every time an entity is created, eating 14% of the time loading a larger map.

scene::SceneGraph::sceneChanged 349 (3,84 %)
=> wxWindow::Refresh 339 (3,73 %) 339 (3,73 %)

The Face::Face constructor is calling SceneGraph::sceneChanged which repeatedly queues a refresh of the camera window, taking another 4%.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: master 9df337b2

2021-07-01 17:33:46

greebo

Details Diff
0005660: The flexibility of being able to define the name of the "name" entity key in the .game file is not worth the performance cost. Affected Issues
0005660
mod - install/games/darkmod.game Diff File
mod - install/games/doom3-demo.game Diff File
mod - install/games/doom3.game Diff File
mod - install/games/prey.game Diff File
mod - install/games/quake3.game Diff File
mod - install/games/quake4.game Diff File
mod - install/games/xreal.game Diff File
mod - radiantcore/entity/NamespaceManager.cpp Diff File

DarkRadiant: master 4f9fd03f

2021-07-02 05:15:25

greebo

Details Diff
0005660: Queue the redraw in the idle event after the current activity is finished. This avoids dispatching thousands of wxWidget::Refresh() calls during map load. Affected Issues
0005660
mod - radiant/camera/CamWnd.cpp Diff File
mod - radiant/camera/CamWnd.h Diff File
mod - radiant/xyview/XYWnd.cpp Diff File
mod - radiant/xyview/XYWnd.h Diff File

DarkRadiant: master e2bd362d

2021-07-02 15:49:15

greebo

Details Diff
0005660: Avoid tens of thousands of reallocations of the Face/FaceInstance vectors when parsing brushes Affected Issues
0005660
mod - radiantcore/brush/Brush.cpp Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/FaceInstance.h Diff File

DarkRadiant: master b453c894

2021-07-02 16:02:01

greebo

Details Diff
0005660: Fix ConsoleView taking ages to catch up with adding buffered log lines to the text control. Affected Issues
0005660
mod - libs/wxutil/ConsoleView.cpp Diff File

Issue History

Date Modified Username Field Change
01.07.2021 17:32 greebo New Issue
01.07.2021 17:32 greebo Assigned To => greebo
01.07.2021 17:32 greebo Status new => assigned
02.07.2021 16:02 greebo Changeset attached => DarkRadiant master 9df337b2
02.07.2021 16:02 greebo Changeset attached => DarkRadiant master 4f9fd03f
02.07.2021 16:02 greebo Changeset attached => DarkRadiant master e2bd362d
02.07.2021 16:02 greebo Changeset attached => DarkRadiant master b453c894
02.07.2021 16:02 greebo Status assigned => resolved
02.07.2021 16:02 greebo Resolution open => fixed
02.07.2021 16:02 greebo Fixed in Version => 2.13.0