Создает ли последовательная нарезка обзора памяти длинную цепочку объектов?
Следующие два фрагмента кода фактически выполняют одно и то же:
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 свернуть это?