wiki:TEXT_PERFORMANCE_R0

Version 1 (modified by boyan, 15 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=TEXT_PERFORMANCE_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

Text performance is bad. The purpose of this task is to improve it and make Sophie usable with large text. At the first revision, known bottlenecks should be attacked and fixed and a way to measure performance should be established. At next revisions, profiling should be performed to find other bottlenecks that slow down the text. These should be fixed as well.

Task requirements

  • The following issues that are known to affect text performance should be fixed:
    • Text processors - they should have a faster implementation. Currently their naive implementation processes the whole text after every keystroke, which is very slow.
    • Properties in BaseTextModel - they should be reduced as their constant re-computation causes slowdown.
    • Mark and caret positions - ?
  • Tests should be written to show text processors performance. At later revisions, they should be extended to serve as profilers.

Task result

Source code

Implementation idea

  • Text processors can have an implementation similar to that of the "lazy views", i.e. they should not process text that is not visible.
  • Text performance is best measured by running automatic tests. A set of predefined and fixed text resources should be created and used in the tests. Performance of each individual task should be tested - e.g. importing, typing, deleting, changing styles, chaining, wrapping, etc.

TEXT_MODEL_REDESIGN
Other?

How to demo

  • Show the better performance by pasting a large text and editing it.
  • (internal) Show and describe the implementation of one of the processors.
  • (internal) Show and describe the improved BaseTextModel.

Design

Describe your design here.

Implementation

Describe and link the implementation results here (from the wiki or the repository).

Testing

Place the testing results here.

Comments

Write comments for this or later revisions here.