Skip to content

[Discussion] Approach to improve C++ performance #22

@kenkangxgwe

Description

@kenkangxgwe

Hi Brenton, I've been doing some very simple runs to get a few results by recording the CodeParser`Library`$ConcreteParseTime.

As shown below, the x-axis is the LoC of the input string, the y-axis shows the time (seconds) it takes to Tokenize and CodeConcreteParse the string. By estimation, a file of ~1000 LoC might take ~0.14 s to tokenize and ~0.16 s to parse (if I subtract the time to tokenize during code parsing. Of course, there will be overhead on the WL side, but the slope shows that the size of the file have larger impact to the parsing process.

  • Mathematica Version: 11.3
  • Paclet version: 1.0
  • Operating System: Windows 10

image

Given the grammar complexity, I think it challenging to push the parser even faster every time and you've done a great job. But I still have faith in the cpp impl that it can be more efficient and that's why I only tested the two library functions. From the history of the commits, I see you have some better way to profile it, so I wonder if you'd like to share some results about the bottleneck you've found in the cpp side regarding the latest master revision? And any plan that they can be improved in the long run, so that by any chance I can make some effort to it as well? Thanks so much.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions