Вам нужно кэшировать окончательный результат, а не промежуточный.то есть, если вы используете B
, то вы кэшируете ресурс, на котором вам нужно вызвать json()
(который создает конечный объект, поэтому вы не кэшируете конечный объект здесь).Если вы используете A
, вы кэшируете конечный объект, предполагая, что это последняя форма, которую вы будете использовать повторно, а не просто вызывать функцию для нее каждый раз (в этом случае вы должны снова кэшировать результат этой функции).
Кэширование в целом может происходить на любом уровне, но вам было интересно, какой путь более эффективен (не в отношении памяти, а в обработке).И тогда ответ будет чем позже вы кешируете в потоке, тем лучше .
Если под эффективностью вы подразумеваете потребление памяти, то вам нужно измерить каждый объект и решить, какой из них имеет меньший вес.Часто это компромисс.