読み取り専用の数値データ (double 値) を DLL に大量に格納する方法が必要です。データは随時変更されるため、ソースに埋め込む必要があります。Visual Studio などの外部ツールは使用せず、コード生成とシェル コンパイラのみを使用します。
それが悪い習慣であることはわかっていますが、これは「ビジネス要件」です。
約2 000 000 の 32 ビット浮動小数点値を格納する必要があります。これは約 8MB の生データになります。DLL のサイズ制限が 100MB であると仮定します。言語はFortranです。
私の最初の考えは、動的配列への値の割り当てを生成することでした:
work(1,1,1,1) = 826
work(1,1,1,2) = 935
work(1,1,1,3) = 712.5
work(1,1,1,4) = 617.1
work(1,1,1,5) = 102.2
しかし、最終的なソース ファイルには約 70 メガバイトがあり、コンパイルする機会はありません (コンパイラのメモリ不足エラー)。さらに、コンパイルしたとしても、最終的な DLL のサイズは、0.5MB の有用なデータごとに ~5MB になります。
ソースをよりコンパクトな方法でフォーマットする (コンパイラーの最適化に適していますか?) または、データを文字列/生のバイナリ データのような他の構造にパックし、実行時に抽出するアイデアはありますか?