掲示板一覧 - トピック一覧 EA API
'Gdip'のタイプ初期化子とは? |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2007-4-25 11:34 |
'Gdip'のタイプ初期化子とは?現在、DuplicateNameサンプルを参考に、プロジェクト内の全ての要素を取得する処理をC#で実装しております。
データの量が少ないうちは、問題なく動くのですが、データ量が 多くパッケージ間のリンクなどがあると、APIの一つ一つの 呼び出しに非常に時間がかかります。 最終的には "'Gdip'のタイプ初期化子が例外をスローしました" というエラーが発生してしまいます。 デバッグしながら実行すると上手くいってしまうので、原因の特定が困難な状況です。 そもそも、'Gdip'云々のエラーとはどういう意味なのでしょうか? |
|
| sugimoto | 投稿日時: 2007-4-25 12:01 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: 'Gdip'のタイプ初期化子とは?'Gdip'は、Graphic Device Interface Plus のことだと思いますが、
EAからはご指摘いただいたようなエラーは出力しておりません。 また、過去に同様のエラーが発生した例はなく、原因は明確になって おりませんが、ご連絡いただいた状況からメモリ不足が発生している 可能性があるのではないかと考えております。 お手数お掛けしますが、プロジェクト内の全ての要素を取得する処理 を実行している際の、メモリ使用状況をご確認いただけますでしょうか? また、パッケージ間のリンクなどがあると、APIの一つ一つの呼び出しに 非常に時間がかかるとありますが、どのような処理をされているか 合わせてご連絡いただきますと、何か原因が分かる可能性があると思います。 ご確認のほど、よろしくお願いいたします。 |
| 未登録ゲスト | 投稿日時: 2007-4-25 13:55 |
Re: 'Gdip'のタイプ初期化子とは?'Gdip'はEAからの出力ではないのですね。
アドイン実行でエラーが出た後は、通常の操作(例えばXMI出力) した場合でも"リソース不足"のエラーが表示されます。 → ということはきっとメモリ不足なんでしょうね。 メモリの使用量は、プロジェクトオープン直後は45MB位で、 アドイン実行後は400MB以上に膨れます。 ただ、物理メモリにはまだ余裕があります。 このプロジェクトにはEAで開くのに15秒以上かかる図が、7つ あります。 XMI出力をした場合でも、5分以上は返ってきません。 この辺がAPIの呼び出しに時間がかかるのと関係してそうです。 リンク云々はこのプロジェクトに"xxへのリンク"というのが たくさんあったから推測しただけです。 ところで、XMI出力中のメモリ使用状況を見ていると、定期的に メモリが開放されているようですが、どうやっているのでしょうか? |
|
| 未登録ゲスト | 投稿日時: 2007-4-25 14:19 |
Re: 'Gdip'のタイプ初期化子とは?自己レスです。
定期的にGC.Collect()を実行することでメモリの使用量が 抑えられ、処理が最後まで行くようになりました。 やはり、メモリ不足だったようです。 |
|
| sugimoto | 投稿日時: 2007-4-25 14:35 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: 'Gdip'のタイプ初期化子とは?ご確認ありがとうございました。
また、問題が発生しなくなったようで安心いたしました。 ご対応いただいた内容はヘルプの「ヒントとテクニック」の "EAが終了しない場合"欄にも記載がありますので、ご確認下さい。 弊社の回答が間に合わず、申し訳ございませんでした。 また、アドインの処理にて情報の更新を行っている場合は、 Repository.EnableUIUpdatesをFalseにすることでアドインによる情報 更新時の描画を抑止することができますので、APIの実行時間が改善 される可能性はございます。 なお、XMI出力中に定期的にメモリを開放する方法につきましては、 ある一定のメモリの上限を超えないように、ご対応いただいたような 処理を行っております。 そのほかお困りのことなどございましたら、ご連絡下さい。 |
| 未登録ゲスト | 投稿日時: 2007-4-25 14:43 |
Re: 'Gdip'のタイプ初期化子とは?丁寧な対応ありがとうございました。
アドインで作成したオブジェクトはそんなに大きくないので GCがこんなに効くとは予想もしませんでした。 きっと、COMとの橋渡しをする部分でいろいろと、オブジェクト を生成していたりするのですね。 |
|
| sugimoto | 投稿日時: 2007-4-25 15:01 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: 'Gdip'のタイプ初期化子とは?C#で作成したアドインをいくつか確認してみましたが、
メモリ使用量が極端に増加するものはありませんでした。 メモリ不足がある場合に、GCにて解決することは可能ですが、 アドイン実行時にメモリ使用量が多い点につきましては、 プロジェクトファイルのサイズやアドインの作成内容などに 起因している可能性が考えられます。 そのほか何か情報がありましたら、お寄せください。 今後ともよろしくお願いします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




