Fatias de fluxo de objetos com cópia zero
Quando a resolução de links materializa pela primeira vez um membro compactado de /Type /ObjStm, o analisador agora lê uma visão de fatia com cópia zero sobre o buffer compartilhado do contêiner descomprimido em vez de uma substring duplicada mais uma segunda cópia do fluxo, portanto documentos grandes com muitos membros param de pagar uma cópia dupla por objeto
THPDFObjectStreamSliceStream
Uma visão pública somente leitura de TStream sobre (origem, deslocamento, comprimento): ela mantém a AnsiString de origem por referência para que os bytes do contêiner permaneçam vivos sem duplicá-los, serve exatamente os bytes do membro, acrescenta um LF final virtual para que os analisadores observem o layout que a cópia legada produziu, e limita em vez de lançar exceção em buscas antes do início da fatia, correspondendo à leniência de TMemoryStream
THPDFObjectStreamCacheInfo
Dois novos diagnósticos relatam o caminho de cópia zero: SliceViewCount conta as visões de membro entregues ao analisador e SliceViewBytes soma os bytes de membro que elas cobriram, ao lado dos contadores existentes de contêiner, indexação, acerto, erro e bytes em cache retornados por GetLoadedObjectStreamCacheInfo