JV-Link 質問箱 |
タイトル | : JvGetsの使用方法について |
記事No | : 9413 |
投稿日 | : 2016/06/11(Sat) 17:51 |
投稿者 | : ぱっつん |
|
お世話になっております。
Jv-LinkのJvGets()についてお聞きしたいです。 簡略化しましたが以下のようなコードを組んでいます。 5年分くらい蓄積を取得したときにメモリ使用量が著しく高くなっており メモリーリークの可能性があり、調査しています。 JVGetsの使い方で気になったので質問させて頂きました。 ============================================================ int l_intSize = 1500; byte[] l_bytBuf = new byte[] { }; object l_pBuf = l_bytBuf;
while (true) { int l_intRet = m_clsLink.JVGets(ref l_pBuf, l_intSize, out l_strFil eName); else if (l_intRet == 0) { break; } } ============================================================ JvGetsの内部でメモリ確保して、l_pBufに確保したメモリのアドレスが入ると 思っています。 このときに内部で確保したメモリはいつ開放されますでしょうか? アプリ側で解放する必要があるのでしょうか? もし、必要がある場合はどのように開放すればよろしいですか?
ご教授ください。 また、そもそも認識が違っている場合は、仕様をご教授ください。
以上、よろしくお願いいたします。
■環境 Visual C# 2015 WPF |
|
タイトル | : Re: JvGetsの使用方法について |
記事No | : 9417 |
投稿日 | : 2016/06/15(Wed) 10:04 |
投稿者 | : JRA-VANソフトサポート |
|
JRA-VANソフトサポートの吉本です。 DataLab.サービスをご利用頂きまして誠にありがとうございます。
> このときに内部で確保したメモリはいつ開放されますでしょうか? > アプリ側で解放する必要があるのでしょうか? > もし、必要がある場合はどのように開放すればよろしいですか?
JVGetsでは、メモリの解放を行っておりません。 そのため、アプリケーション側で解放して頂く必要がございます。
メモリ解放の方法については、JV-Linkインターフェース仕様書の 「JVGets」の章の【 VisualBasic6 での JVGets 読み出し方法 】 に記載しておりますので、参考にしていただければと思います。
以上、よろしくお願いいたします。 |
|
タイトル | : Re^2: JvGetsの使用方法について |
記事No | : 9418 |
投稿日 | : 2016/06/16(Thu) 00:43 |
投稿者 | : ぱっつん |
|
早速のご返信ありがとうございます。
私はWPF C#を使用しておりますので.net環境です。 VB6のEraseは.netではどのメソッドになるでしょうか? Array.Clear()とか単にnullを代入でいいのでしょうか? ご回答よろしくお願いいたします。
よろしくお願いいたします
> JRA-VANソフトサポートの吉本です。 > DataLab.サービスをご利用頂きまして誠にありがとうございます。 > > > このときに内部で確保したメモリはいつ開放されますでしょうか?
> > アプリ側で解放する必要があるのでしょうか? > > もし、必要がある場合はどのように開放すればよろしいですか? > > JVGetsでは、メモリの解放を行っておりません。 > そのため、アプリケーション側で解放して頂く必要がございます。 > > メモリ解放の方法については、JV-Linkインターフェース仕様書の > 「JVGets」の章の【 VisualBasic6 での JVGets 読み出し方法 】 > に記載しておりますので、参考にしていただければと思います。 > > 以上、よろしくお願いいたします。 |
|
タイトル | : Re^3: JvGetsの使用方法について |
記事No | : 9419 |
投稿日 | : 2016/06/18(Sat) 02:33 |
投稿者 | : ぱっつん |
|
お世話になっております。 ぱっつんです。
あれからいろいろと試したところメモリリークが収まりましたので ご報告いたします。(完全ではないかもですが・・・)
削除はEraseを使用するとご教授頂きました。 C#ではnullを代入するのと同様ですので、null代入の対応を取りました。 その結果、メモリ使用率の異常な増加はなくなりました。
一旦これで様子を見ようとおもいます。
ご協力いただきありがとうございました。 |
|
|
|
copyright ©2007 JRA SYSTEM SERVICE CO.,LTD. All Rights Reserved.
|
|
|