| Summary: | AbstractNode.getStartLine too slow | ||
|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Mark Christiaens <mark.g.j.christiaens> |
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | mark.g.j.christiaens, sebastian.zarnekow, sven.efftinge |
| Version: | 2.0.0 | Flags: | sebastian.zarnekow:
indigo+
|
| Target Milestone: | M7 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | |||
|
Description
Mark Christiaens
The IDiagnosticConverter should get the chance to convert diagnostics to issues in batch mode. This would allow to use a precomputed, sorted list of line numbers / offset data. It was indeed very slow. Each of the mentioned operations were performed for all nodes in the given domain-model input: Input size: 300kb iterate nodes as no-op: 17ms INode.getTotalOffset: 21ms INode.getOffset: 33ms INode.getTotalEndOffset: 20ms INode.getTotalLength: 20ms INode.getLength: 42ms INode.getTotalStartLine: 58725ms INode.getStartLine: 58500ms INode.getTotalEndLine: 58784ms <Abort> New times are: -------------- Input size: 300kb iterate nodes as no-op: 16ms INode.getTotalOffset: 22ms INode.getOffset: 37ms INode.getTotalEndOffset: 20ms INode.getTotalLength: 21ms INode.getLength: 39ms INode.getTotalStartLine: 32ms INode.getStartLine: 46ms INode.getTotalEndLine: 31ms INode.getEndLine: 74ms Input size: 2MB iterate nodes as no-op: 86ms INode.getTotalOffset: 97ms INode.getOffset: 269ms INode.getTotalEndOffset: 100ms INode.getTotalLength: 96ms INode.getLength: 242ms INode.getTotalStartLine: 175ms INode.getStartLine: 350ms INode.getTotalEndLine: 191ms INode.getEndLine: 449ms Closing all bugs that were set to RESOLVED before Neon.0 Closing all bugs that were set to RESOLVED before Neon.0 |