This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 255184 - org.netbeans.editor.Syntax.nextToken: LowPerformance took 11236 ms.
Summary: org.netbeans.editor.Syntax.nextToken: LowPerformance took 11236 ms.
Status: RESOLVED WORKSFORME
Alias: None
Product: editor
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 8.1
Hardware: All All
: P3 normal (vote)
Assignee: Milutin Kristofic
URL:
Keywords: PERFORMANCE
Depends on:
Blocks:
 
Reported: 2015-09-10 14:10 UTC by Michel Graciano
Modified: 2015-09-14 14:03 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter: 219858


Attachments
nps snapshot (139.05 KB, application/nps)
2015-09-10 14:10 UTC, Michel Graciano
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michel Graciano 2015-09-10 14:10:25 UTC
This bug was originally marked as duplicate of bug 198829, that is already resolved. This bug is still valid, so this seems to be another bug, but it might be related.

Build: NetBeans IDE Dev (Build 20150909-6ff4934e5978)
VM: Java HotSpot(TM) 64-Bit Server VM, 25.51-b03, Java(TM) SE Runtime Environment, 1.8.0_51-b16
OS: Linux

User Comments:
hmichel: Undoing a source change (changed 20 lines more or less)



Maximum slowness yet reported was 11236 ms, average is 11236
Comment 1 Michel Graciano 2015-09-10 14:10:28 UTC
Created attachment 156062 [details]
nps snapshot
Comment 2 Michel Graciano 2015-09-10 14:15:34 UTC
This happened when I tried to undo another slow operation (filed at #255185). The original source file has 548 lines, but the replace operation was done on a small part (20 lines more or less). I will investigate further to reproduce it in a source that I can disclosure.
Comment 3 Michel Graciano 2015-09-10 14:45:33 UTC
This is the undo operation for the issue #255185 in "big" Java files (578 lines).

Ok, now I can reproduce it with the following class.

package nb;

import java.util.Collection;
import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;

public class SampleClass {

  public <T> void someMethod(final Collection<T> dtos,
          final BiPredicate<T, Collection<XXX>> is,
          final BiFunction<T, XXX.Builder, XXX> from,
          final BiFunction<T, Collection<XXX>, Optional<XXX>> findXXX) {
    someCollection.forEach(someObject::removeXXX);
  }

}

Steps to reproduce:
1. Select the whole method 'someMethod', press Ctrl + H
2. Put XXX for 'Find What', and MoreXXX for 'Replace With'
3. The result is as below
4. Now undo the operation, and you can see the report for this issue.

public <T> void someMethod(final Collection<T> dtos,
          final BiPredicate<T, Collection<MoreXXX>> is,
          final BiFunction<T, MoreXXX.Builder, MoreXXX> from,
          final BiFunction<T, Collection<MoreXXX>, Optional<MoreXXX>> findMoreXXX) {
    someCollection.forEach(someObject::removeMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreMoreXXX);
  }
Comment 4 Milutin Kristofic 2015-09-14 14:03:44 UTC
This low perfomance is caused by search and replace bug. Undo was replacing many replaces (it is many small changes (more than 290).