January 17, 2017
On Sunday, 15 January 2017 at 01:26:07 UTC, Dmitry Olshansky wrote:
> Two key areas of focus are (compared to say Pegged):
> - performance, on par with hand-written code or die

I didn't profile, but apart from the time-complexity that is inherent to straight forward recursive descent parsers like Pegged (improved by memoization), my impression is that Pegged's main performance problem is due to a very high constant: it is concatenating strings, all the time. A LOT of strings, and a LOT of concatenations. Almost all of them are discarded, of course. Finding a way to do the same without string concatenation would have a big impact.

Bastiaan.
January 20, 2017
On 1/17/17 11:52 PM, Bastiaan Veelo wrote:
> On Sunday, 15 January 2017 at 01:26:07 UTC, Dmitry Olshansky wrote:
>> Two key areas of focus are (compared to say Pegged):
>> - performance, on par with hand-written code or die
>
> I didn't profile, but apart from the time-complexity that is inherent to
> straight forward recursive descent parsers like Pegged (improved by
> memoization), my impression is that Pegged's main performance problem is
> due to a very high constant: it is concatenating strings, all the time.
> A LOT of strings, and a LOT of concatenations. Almost all of them are
> discarded, of course. Finding a way to do the same without string
> concatenation would have a big impact.

I considered to work with Pegged but I decided against it, because my priorities are different: get it fast then get it full of features.
IMHO performance is something to think of at design time not afterwards.

---
Dmitry Olshansky
1 2
Next ›   Last »