While cleaning a magic 4, an increment operator, repeated sums and unneeded helper variables of the ElevationPainter, move the simple ElevationPainter just above the SmoothElevationPainter and add a JSdo comment on its mechanism.
Move the constants that are only used by the SmoothElevationPainter to the SmoothElevationPainter.
Details
- Reviewers
- None
- Commits
- rP20349: Move ElevationPainter and SmoothElevationPainter constants above the…
Notice that the destructing assignment, the for...of loop and the repeated construction of the [[0, 0], ...] array each slow down the loop by some microseconds.
Waste an hour lifetime to do tests on Pyrenean Sierra or Deep Forest, which are the only maps using this painter.
Take my word for it that the sm45 doesn't improve the performance of these aspects or try it yourself: https://github.com/leper/0ad/tree/sm45
Read the createArea function and note that the greatest part of performance of rmgen is repeatedly randomizing of placer coordinates until the constraint is met and that the painter is only executed in O(n) on the given points,
hence those milliseconds being irrelevant.
Diff Detail
- Repository
- rP 0 A.D. Public Repository
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Build is green
Updating workspaces... Build (release)... Build (debug)... Running release tests... Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK! Running debug tests... Running cxxtest tests (307 tests)...................................................................................................................................................................................................................................................................................................................OK! Checking XML files...
http://jenkins-master:8080/job/phabricator/2166/ for more details.
Executing section Default... Executing section Source... Executing section JS... binaries/data/mods/public/maps/random/rmgen/painter.js | 108| » for·(var·i=0;·i·<·length;·i++) | | [NORMAL] JSHintBear: | | 'i' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 142| » » » var·i=0; | | [NORMAL] JSHintBear: | | 'i' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 156| » » for·(var·dx=-1;·dx<=1;·dx++) | | [NORMAL] JSHintBear: | | 'dx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 158| » » » var·nx·=·px+dx; | | [NORMAL] JSHintBear: | | 'nx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 159| » » » for·(var·dz=-1;·dz<=1;·dz++) | | [NORMAL] JSHintBear: | | 'dz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 161| » » » » var·nz·=·pz+dz; | | [NORMAL] JSHintBear: | | 'nz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 233| » » ||·(g_Map.inMapBounds(x-1,·z)·&&·g_Map.area[x-1][z]·==·areaID) | | [NORMAL] JSHintBear: | | Misleading line break before '||'; readers may interpret this as an expression boundary. binaries/data/mods/public/maps/random/rmgen/painter.js | 234| » » ||·(g_Map.inMapBounds(x,·z-1)·&&·g_Map.area[x][z-1]·==·areaID) | | [NORMAL] JSHintBear: | | Misleading line break before '||'; readers may interpret this as an expression boundary. binaries/data/mods/public/maps/random/rmgen/painter.js | 235| » » ||·(g_Map.inMapBounds(x-1,·z-1)·&&·g_Map.area[x-1][z-1]·==·areaID) | | [NORMAL] JSHintBear: | | Misleading line break before '||'; readers may interpret this as an expression boundary. binaries/data/mods/public/maps/random/rmgen/painter.js | 265| » for·(var·i=0;·i·<·length;·i++) | | [NORMAL] JSHintBear: | | 'i' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 288| » for·(var·i=0;·i·<·length;·i++) | | [NORMAL] JSHintBear: | | 'i' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 290| » » var·x·=·pts[i].x; | | [NORMAL] JSHintBear: | | 'x' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 291| » » var·z·=·pts[i].z; | | [NORMAL] JSHintBear: | | 'z' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 292| » » for·(var·dx=-1;·dx·<=·2;·dx++) | | [NORMAL] JSHintBear: | | 'dx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 294| » » » var·nx·=·x+dx; | | [NORMAL] JSHintBear: | | 'nx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 295| » » » for·(var·dz=-1;·dz·<=·2;·dz++) | | [NORMAL] JSHintBear: | | 'dz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 297| » » » » var·nz·=·z+dz; | | [NORMAL] JSHintBear: | | 'nz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 346| » » for·(var·dx=-1;·dx·<=·1;·dx++) | | [NORMAL] JSHintBear: | | 'dx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 348| » » » var·nx·=·px+dx; | | [NORMAL] JSHintBear: | | 'nx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 349| » » » for·(var·dz=-1;·dz·<=·1;·dz++) | | [NORMAL] JSHintBear: | | 'dz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 351| » » » » var·nz·=·pz+dz; | | [NORMAL] JSHintBear: | | 'nz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 366| » for·(var·i·=·0;·i·<·length;·++i) | | [NORMAL] JSHintBear: | | 'i' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 368| » » var·pt·=·heightPts[i]; | | [NORMAL] JSHintBear: | | 'pt' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 369| » » var·px·=·pt.x; | | [NORMAL] JSHintBear: | | 'px' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 370| » » var·pz·=·pt.z; | | [NORMAL] JSHintBear: | | 'pz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 377| » » » for·(var·dx=-1;·dx·<=·1;·dx++) | | [NORMAL] JSHintBear: | | 'dx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 379| » » » » var·nx·=·px+dx; | | [NORMAL] JSHintBear: | | 'nx' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 380| » » » » for·(var·dz=-1;·dz·<=·1;·dz++) | | [NORMAL] JSHintBear: | | 'dz' is already defined. binaries/data/mods/public/maps/random/rmgen/painter.js | 382| » » » » » var·nz·=·pz+dz; | | [NORMAL] JSHintBear: | | 'nz' is already defined. Executing section XML GUI...
http://jenkins-master:8080/job/phabricator_lint/631/ for more details.