Re: [pcre-dev] JIT increase stack requirement for SVN 1295

Página superior
Eliminar este mensaje
Autor: Zoltán Herczeg
Fecha:  
A: Ralf Junker
Cc: pcre-dev@exim.org
Asunto: Re: [pcre-dev] JIT increase stack requirement for SVN 1295
Hi Ralf,

I am sorry, I misunderstood your question. It is about compilation not running the pattern.

On my 64 bit Linux, the stack size reported by valgrind is:

r1239: 827264
r1295: 892576

This is definitely an increase (by about 8%), but not serious increase. The binary is compiled by GCC and -O2 optimization level.

Regards,
Zoltan

"Zoltán Herczeg" <hzmester@???> írta:
>Hi,>
>

definitely worth investigating it. However, I cannot see it on my 64 bit Linux machine. I have some questions:>
>

- these patterns simply match to "ab", because of the non-greedy quantifier. That requires a very small amount of memory. Is this intentional? What is your input for these patterns?>
>

- I modified your pattens by putting an 'x' at their end, and matching to an "abb...bbbx" subject, where 1999 'b'-s are found.>
>

With a non-greedy quantifier: 16008 bytes of stack is consumed>
With a greedy quantifier: 31992 bytes of stack is consumed>
>

That is nowhere from the 660K memory provided by you.>
>

Regards,>
Zoltan>
>

Ralf Junker <ralfjunker@???> írta:>
>The SVN 1295 JIT engine on Win32 requires more stack than before to>>

compile patterns with a large number repeated subpatterns.>>
>>

I did not track which code change exactly is responsible for the>>
increase, but compared to SVN 1239 I had to almost double the maximum>>
stack size from about 660000 to 1120000 in order to prevent an>>
out-of-stack exception for these patterns:>>
>>

(a)(?2){0,1999}?(b)>>
(a)(?(DEFINE)(b))(?2){0,1999}?(?2)>>
>>

I am not sure if this is a bug or simply a side-effect required by the>>
new JIT features. However, it might be worth noting that the non-JIT>>
compiler requires considerably less stack so improvement might be possible.>>
>>

Ralf>>
>>

-- >>
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev >>
>
>

-- >
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev