2 返信 最新の回答 日時: Feb 5, 2013 7:05 PM ユーザー:gigalyz

    win7+FMP11advでPDF書き出しはメモリーリーク?

    gigalyz

      概要

      win7+FMP11advでPDF書き出しはメモリーリーク?

      製品

      FileMaker Pro

      バージョン

      11

      オペレーティングシステムのバージョン

      windows7 hp 32&64

      問題の内容

      FMPファイルA 対象10,000件位

       新規ウィンドウで印刷レイアウトをプレビューするスクリプト S1

       S1で表示したウィンドウをPDF書き出しとウィンドウを閉じるスクリプト S2 PDFの1ファイルのサイズは120kb程度


      FMPファイルB Aの中身を全部PDF自動書き出しが目的で下記のループスクリプト

       loop

        FMPファイルAに対して、登録されているレコード内容を順次指定してスクリプトS1を実行

        エラーが無ければスクリプトS2を実行してPDF書き出し

        レコード内容切り替え(最後まできたら終了)

       endloop

      保存先作成などの記述は省略してますが、おおよそ上記の2ファイルの関係での問題です。


      Filemakerは11と11adv。

      win7hpの32bit+11上で実行テストを行っていると、80分ほど経過して3500件ほど書き出したところで

      Windows7のメモリー消費が大幅に増加しておりファイルメーカーexeが700MB使用していました。

      通常ファイルメーカーがデフォルト設定で起動した状態では95MB程度です。

      そこでWin7hpの64bit環境+11advで同様にテストすると、

      やはり20分程度で200MBを超える消費に増加しました。

      XPのPro+11で試すと1時間実施してもファイルメーカーのメモリー消費は120MB前後で増えません。

      厳密にはプレビュー画面で数10MB増えて、PDF書き出し後にウィンドウを閉じるとメモリーは減ります。

      Win7上では減る事が無くジワジワ増すばかりです。

      メモリーリークですよね

      ---------------------------------------
      追記
      XPでは正常と書きましたが、結局駄目だと判りました。
      正常に動いたのはVertualBOX内のXP環境です。
      今日、リアルなXP環境で試したら7と同じくメモリーはどんどん消費されます。
      現時点でXPはGM945のC2D(オンボードビデオ)1機種しか無いので
      これ以上の調査も実験もできませんので、
      長時間loopで回すこと自体を制限して適当にFilemakerを再起動するように
      逃げます。

      問題の再現方法

      上記

      実際の結果

      winではFMPのメモリー消費が増加し続けるため、最終的にはダウンする可能性が高い。

      表示されたエラーメッセージの正確な内容

      OS側でメモリー不足のアラートとアプリケーションのどれかを消すような指示が出る

      設定情報

      搭載メモリーを使い切る前にFilemakerを再起動

      対処方法

      ない?

        • 1. Re: win7+FMP11advでPDF書き出しはメモリーリーク?
          TSGalJ

          との 樣

          平素は弊社製品をご愛顧いただき誠にありがとうございます。

          ご投稿の現象ですが、Windows 版の FileMaker Pro 10 で、TIFF 画像を保存したオブジェクトフィールドがあるレイアウトを、1レコードを1PDFに保存する処理をループで行うと、150〜200 レコード辺りで アプリケーションが強制終了するという、よく似た事例の情報がごさいました。

          この事例については、画像を JPEG や BMP に変更すると問題が発生しないことや、またはループ回数を 100 回程度に制限してアプリを再起動すると問題が発生しないことが判っており、また、FileMaker Pro 11 では改善されています。今回このときのデータを元に Windows XP および Windows 7 で再現テストを実施してみたのですが、15,000 レコード分の処理を行っても、FileMaker Pro 11 の使用メモリ量は 170〜190MB程度で推移しており、異常終了は再現できませんでした。

          このため、弊社で確認できている現象と類似しているものの、別な問題が発生されている状況と考えられるのですが、問題が特定のファイルやレイアウトで発生されているのであれば、ご使用のファイルの該当のレイアウト上に、PDF 保存時に問題を引き起こすような何らかのレイアウトオブジェクトが配置されている可能性が考えられます。

          直接的な改善策がご提供できず恐縮ではございますが、上記の内容から、これはと思われるレイアウト上のオブジェクトがあれば、形式の変更などをお試しいただく価値があるかと存じます。

          今後とも、弊社製品をご愛用いただきますようお願い申し上げます。

          ファイルメーカー株式会社

          TSGalJ

          • 2. Re: win7+FMP11advでPDF書き出しはメモリーリーク?
            gigalyz

                 調査ありがとうございます

                 大変遅い反応で恐縮ですが、その後当方でレイアウトオブジェクトの有無で差があるか等を調査しました

                 結果として元々のレイアウトも会社ロゴ100*100px程度の会社ロゴ画像の貼り付けが一つで、

                 他は線オブジェクトとフィールドのみでデザインされたフォーマットなので、

                 何かを削除して改善や、複数のレイアウトを用いている中のどれかに依存する等の差はありませんでした。

                  

                 またPDF書き出しや完了レコード削除までBファイルを介して行っていた処理をファイルAだけで実行するように

                 実験的に構造を変更したところメモリーの増加はありませんでした。

                  

                 結局二つのファイル連携でLoopさせているとやはりメモリーの消費増加が発生しますので

                 PDF発行云々での問題ではなく複数のファイル間の連携でかつ

                 ローカルやグローバル変数、スクリプト引数など書き換えを繰り返しているどこかに問題があるのかもしれません。

                 しかし、調査手法がわからない、調査時間も限られていたので

                 結局ファイルB側で確実に搭載メモリー内で収まる見込みの上限loop回数を設定して

                 処理を複数日にまたいで行うように仕様を変えました。