Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

major slowdown from 0.29.0 to 0.30.0 (trac #3167) #3167

Closed
behrisch opened this issue Jun 7, 2017 · 4 comments

Comments

@behrisch
Copy link
Contributor

commented Jun 7, 2017

when opening a medium size network (30MB, 30k edges) and initial zoom (whole map) panning the view has a drawing delay of ~1s. with 0.29.0 and lower, now delay is noticable

the network is in the bugreports folder

Migrated from http://sumo.dlr.de/ticket/3167

{
    "status": "closed", 
    "changetime": "2017-06-15T13:49:04Z", 
    "description": "when opening a medium size network (30MB, 30k edges) and initial zoom (whole map) panning the view has a drawing delay of ~1s. with 0.29.0 and lower, now delay is noticable\n\nthe network is in the bugreports folder", 
    "reporter": "namdre", 
    "cc": "", 
    "resolution": "fixed", 
    "_ts": "1497534544398794", 
    "component": "netedit", 
    "summary": "major slowdown from 0.29.0 to 0.30.0", 
    "priority": "critical", 
    "keywords": "", 
    "time": "2017-06-07T13:20:32Z", 
    "milestone": "1.0.0", 
    "owner": "pablo", 
    "type": "defect"
}
@behrisch

This comment has been minimized.

Copy link
Contributor Author

commented Jun 7, 2017

@behrisch

This comment has been minimized.

Copy link
Contributor Author

commented Jun 7, 2017

  • @palvarezlopez changed _comment0 from "The bottleneck is produced in GNELane::drawGL(const GUIVisualizationSettings& s) const" to "1497527046120195"
  • @palvarezlopez commented:

The bottleneck is produced in GNELane::drawGL(const GUIVisualizationSettings& s) const, specifically in:

// Traslate to fromt
glTranslated(0, 0, getType());
// Check if edge parent or this lane is selected
const bool selectedEdge = gSelected.isSelected(myParentEdge.getType(), myParentEdge.getGlID());
const bool selected = gSelected.isSelected(getType(), getGlID());
// Set color
/*
if (mySpecialColor != 0) {
    // If special color is enabled, set it
    GLHelper::setColor(*mySpecialColor);
} else if (selected && s.laneColorer.getActive() != 1) {
    // override with special colors (unless the color scheme is based on selection)
    GLHelper::setColor(GNENet::selectedLaneColor);
} else if (selectedEdge && s.laneColorer.getActive() != 1) {
    // override with special colors (unless the color scheme is based on selection)
    GLHelper::setColor(GNENet::selectionColor);
} else {
    // Get normal lane color
    const GUIColorer& c = s.laneColorer;
    if (!setFunctionalColor(c.getActive()) && !setMultiColor(c)) {
        GLHelper::setColor(c.getScheme().getColor(getColorValue(c.getActive())));
    }
}
@behrisch

This comment has been minimized.

Copy link
Contributor Author

commented Jun 7, 2017

@palvarezlopez commented:

Bottleneck is caused by this call:

GLHelper::setColor('''c.getScheme().getColor(getColorValue(c.getActive()))''');

@behrisch

This comment has been minimized.

Copy link
Contributor Author

commented Jun 7, 2017

  • @namdre committed db6c8a5 (aka r24701):
    fix #3167 (reverting [23964] and applying a better fix refs #2961
  • @namdre changed resolution from "" to "fixed"
  • @namdre changed status from "assigned" to "closed"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.