1) Проблема в том, что xlsx это zip и поэтому настоящую потоковость сделать нереально:
2) в самом zip еще несколько файлов, так что потоковость на что именно?! Теоретически можно извратиться и "самые сложные" таблицы скидывать сперва в какой-то временный файл и потом уже файлы на диске упаковывать в конечный zip/xlsx, но в данный момент такая задача не стоит.
Насчет benchmarks, я использовал стандартные средства, вроде достал все, что можно было из них. последний столбец, по-сути и есть про память. Как еще замерять стандартными средствами я не знаю. Есть идеи?