HTTP経由でRESTfulサーバーと通信する組み込みアプリケーションがあります。一部のサービスでは、 flexを使用して作成した非常に単純なレクサーを使用して解釈されるデータをクライアントに送信します。
現在、帯域幅の消費を減らすためにgzip圧縮レイヤーを追加しているところですが、メモリ要件のために現在のアーキテクチャに満足していません。最初にデータ全体をバッファに受け取り、次にバッファ全体を次のように解凍します。新しいバッファを作成してから、データ全体をフレックスにフィードします。
チャンク化されたデータをHTTPクライアントからzlibルーチンにフィードすることで、最初のステップと2番目のステップの間にメモリを節約できます。しかし、zlibチャンク出力とフレックス入力の間で同じことができるかどうか疑問に思っています。
現在、入力の分析にはyy_scan_bytes
とのみを使用しています。yylex
flexには、データの複数のチャンクをフィードする機能がありますyylex
か?複数の入力バッファに関するドキュメントを読みましたが、役に立ちませんでした。