So imagine a dataset that generates a template with 20 to 30 full content in letter-size pages including some infographics
it is hard to tell you how to optimize something i don't have full visibility but it seems to me that in this case the loop is not the slowest part, but rather the pdf generation handled by chrome (assuming you are using chrome-pdf recipe), which is slow at generating a table with a lot of rows.
if you render the template in the studio with the same data that the api send, what do you see in the studio profile? that should give you some hints about what took the most part in the render.
the component should be there if you installed jsreport from npm, are you installing this way?