New issue 1811: finditer() stalls PyPy 2.3.1 https://bitbucket.org/pypy/pypy/issue/1811/finditer-stalls-pypy-231
Rui Carmo: I've come across a significant performance hit when using PyPy 2.3.1 with Bottle ([commit](https://github.com/defnull/bottle/blob/bc312ae49d9f7f389c06db53898e5a5f7b63c93c/bottle.py#L3429)) on Linux x86_64. In the method below ([ref](https://github.com/defnull/bottle/blob/bc312ae49d9f7f389c06db53898e5a5f7b63c93c/bottle.py#L3429)), PyPy stalls when instantiating the generator for a good three seconds according to the timestamps of the log messages I inserted, whereas stock CPython just breezes through this. ```python def flush_text(self): text = ''.join(self.text_buffer) del self.text_buffer[:] if not text: return parts, pos, nl = [], 0, '\\\n'+' '*self.indent log.debug("begin stall") for m in self.re_inl.finditer(text): log.debug("end stall") prefix, pos = text[pos:m.start()], m.end() if prefix: parts.append(nl.join(map(repr, prefix.splitlines(True)))) ``` I suspect this is partly due to the complexity of the regexp, but it shouldn't happen. I've filed [an issue there](https://github.com/defnull/bottle/issues/638) with a `pstats` profile. _______________________________________________ pypy-issue mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-issue
