Я отвечу ужасным, нарисованным рукой комиком. Второе изображение является причиной того, что result
является undefined
в вашем примере кода.
Сообщение «промежуточный результат кэшируется» - это просто слепая догадка в сохраненном сообщении, сообщаемом% timeit. Это может быть или не быть правдой, и вы не должны предполагать, что это правильно.
В частности, одной из наиболее распространенных причин для первого запуска является самый медленный, так это то, что массив находится в CPU cache только после первого запуска.
ЦП автоматически кэшируют вещи; вы не можете этого избежать, и вы действительно не хотите этого избежать. Однако оптимизирующие алгоритмы, позволяющие оптимизировать работу кэшей CPU, в настоящее время являются одним из узких мест, которые необходимо учитывать в высокопроизводительных вычислениях.