Создает ли последовательная нарезка обзора памяти длинную цепочку объектов? - PullRequest
0 голосов
/ 17 января 2020

Создает ли последовательная нарезка обзора памяти длинную цепочку объектов?

Следующие два фрагмента кода фактически выполняют одно и то же:

base_view = memoryview(some_buffer)
total_bytes = 0
for processor in all_processors:
    total_bytes += processor.process(base_view[total_bytes:])
last_view = memoryview(some_buffer)
for processor in all_processors:
    bytes_processed = processor.process(last_view)
    last_view = last_view[bytes_processed:]

Единственное реальное отличие состоит в том, что в первом случае представления памяти нарезаются из одного «базового_обзора», а во втором случае представление среза памяти является фрагментом из предыдущей итерации («последнее_обозрение»). То есть второе - создание среза среза, среза, среза ...


Сохраняет ли представление среза памяти, как во второй версии, все представления памяти в цепочке или python свернуть это?

...