develooper Front page | perl.perl5.porters | Postings from January 2003

Re: change #9754: 5 x slowdown for perl -d

Rafael Garcia-Suarez
January 19, 2003 15:40
Re: change #9754: 5 x slowdown for perl -d
Message ID:
Nicholas Clark wrote:
> The two things I don't understand
> 1: The above change seems to relate only to hints. Yet the profiling suggested
>    that restore_magic is now called about 23 million times, about 23 million
>    more than previously. How does changing hints increase the amount of
>    magic?

1. only the debugger code path is involved by this slowdown
2. can't be blamed (as you demonstrated)
3. hence, I looked in pp_dbstate to see if PL_op->op_private was not
   used, by chance
4. it is used ! as a condition for most of the work done by pp_dbstate
5. conclusion : I don't know why, but try to remove it

> 2: What other things should break without this hints change?
>    So what sort of regression tests should we have for them?

locale tests break because there is no longer a way for an op to know
at runtime whether it was compiler under the locale pragma (in other
words the IN_LOCALE_RUNTIME macro is broken.)

In fact the IN_BYTES macro will not be broken as HINT_BYTES was already
handled before Robin's patch.

Every code that relies on the value of a pragma being known at runtime,
except eval(""), will be broken. But that's not a lot of code indeed.

> > (Another fix is of course to stop storing hints in COP.op_private.)
> What effect on program correctness would that have?

I don't understand the question. The suggestion is to store the hints
in a new field in COps instead of storing some of them in their
op_private part. I've a patch that does this, but as I want to write
extensive regression tests and handle %^H as well, it's not finished.
And tuits are rare... Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About