Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
P
poppler
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 613
    • Issues 613
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 38
    • Merge Requests 38
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • poppler
  • poppler
  • Merge Requests
  • !19

Closed
Opened Aug 27, 2018 by StefanBruens@StefanBruensContributor
  • Report abuse
Report abuse

Optimize splashxpathscanner

  • Overview 10
  • Commits 4
  • Pipelines 6
  • Changes 3

The first 2 patches do some preparative cleanup/optimization.

The 3rd patch contains the first part of the optimization, replacing the single intersections array with a better fitting structure.

The 4th patch optionally uses boost::container::small_vector, to reduce the number of allocations for common simple polygons.

Patches 5 to 6 to some straight forward optimizations, moving invariant code out of the loops.

For the documents from fdo#96728 and fdo#78728, the pdftoppm runtime is significantly reduced (according to /usr/bin/time -v, before / after patch 3 / after patch 4, in seconds):

runsforever-poppler: 2979.8 / 2348.1 (79%) / 1773.5 (60%) surf-types: 9.45 / 7.76 (82%) / 5.02 (53%)

After patch 5 / 7: runsforever-poppler: 1442.0 (48%) / 1239.0 (42%) surf-types: 5.02 (53%) / 4.70 (49%)

This is version 3 of the patches. This merge request has been sent earlier as a series of 8 patches. The first patch was already merged. The former 2nd patch has been replaced by a different approach. The remainder is unchanged save any rebasing.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: poppler/poppler!19
Source branch: optimize_splashxpathscanner