Jak wspomnieliśmy wcześniej, knitr nie jest tak przydatny, jeśli piszesz bardzo długi dokument lub dokument zawierający złożone obliczenia. Możesz jednak uniknąć niektórych z tych problemów, używając pamięci podręcznych. Podstawową kwestią jest to, że jeśli masz długi dokument lub taki, który wymaga długich obliczeń, to za każdym razem, gdy chcesz odświeżyć dokument, musisz go ponownie skompilować, co oznacza, że musisz ponownie wykonać wszystkie obliczenia. Może to nie stanowić problemu, jeśli dokument jest wydajny lub mały. Jednak siedzenie i czekanie na wykonanie każdego obliczenia za każdym razem może być nieefektywne. Buforowanie fragmentów to jeden ze sposobów uniknięcia tych długich obliczeń. Ustawiając opcję cache = TRUE chunk, knitr uruchamia porcję raz i zapisuje dane wyjściowe w katalogu roboczym. Kiedy ponownie tworzysz dokument, zamiast uruchamiać kod w tym konkretnym fragmencie, knitr przeładuje zapisane wyjście. Jeśli kod w porcji w ogóle się zmieni, knitr wykryje to i ponownie uruchomi kod, przechowując zaktualizowane wyniki. Istnieją pewne zastrzeżenia dotyczące buforowania. W szczególności zależności między porcjami nie są domyślnie sprawdzane. Jeśli wyniki buforowanej porcji zależą od poprzedniej porcji, która została zmodyfikowana, zmiany te niekoniecznie będą przenoszone na późniejsze porcje w pamięci podręcznej. Ponadto fragmenty ze znaczącymi skutkami ubocznymi, takie jak zapisywanie danych wyjściowych do plików lub jakakolwiek interakcja ze środowiskiem zewnętrznym, mogą nie być buforowane. Dopóki jesteś z nimi ostrożny, nie powinieneś mieć żadnych problemów.