[Python-Dev] Investigating Python memory footprint of one real Web application

INADA Naoki songofacandy at gmail.com
Tue Jan 24 09:00:17 EST 2017


FWIW, I tried to skip compiler_visit_annotations() in Python/compile.c

a) default:                   41278060
b) remove annotations: 37140094
c) (b) + const merge: 35933436

(a-b)/a = 10%
(a-c)/a = 13%

And here are top 3 tracebacks from tracemalloc:

15109615 (/180598)
  File "<frozen importlib._bootstrap_external>", line 488
  File "<frozen importlib._bootstrap_external>", line 780
  File "<frozen importlib._bootstrap_external>", line 675
  File "<frozen importlib._bootstrap>", line 655

1255632 (/8316)
  File "/home/inada-n/local/cpython/lib/python3.7/_weakrefset.py", line 84
    self.data.add(ref(item, self._remove))
  File "/home/inada-n/local/cpython/lib/python3.7/abc.py", line 230
    cls._abc_negative_cache.add(subclass)
  File "/home/inada-n/local/cpython/lib/python3.7/abc.py", line 226
    if issubclass(subclass, scls):
  File "/home/inada-n/local/cpython/lib/python3.7/abc.py", line 226
    if issubclass(subclass, scls):

1056744 (/4020)
  File "/home/inada-n/local/cpython/lib/python3.7/abc.py", line 133
    cls = super().__new__(mcls, name, bases, namespace)
  File "/home/inada-n/local/cpython/lib/python3.7/typing.py", line 125
    return super().__new__(cls, name, bases, namespace)
  File "/home/inada-n/local/cpython/lib/python3.7/typing.py", line 977
    self = super().__new__(cls, name, bases, namespace, _root=True)
  File "/home/inada-n/local/cpython/lib/python3.7/typing.py", line 1105
    orig_bases=self.__orig_bases__)

Regards,


More information about the Python-Dev mailing list