tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルOffice Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12644
投稿日: 2008/06/27(Fri) 08:54
投稿者BamChan
 以前、こちらでお世話になったものです。今回も宜しくお願いします。
Office Web Compornent 9.0 を使っているのですが、タスクマネージャーで見る限り、
VBアプリからスプレッドシートの1セルに書き込んで表示させると、ハンドルの数が+1
されています。(.exeを終了しない限り減ることはありません。)
 前に、セル書き込みの直後に同シートに対して、.Refreshメソッドを使うと、
(Undoの為に用意されているメモリ(?)が開放されているらしく、)
メモリリソースの不必要な消耗には効果があると、経験上感じてはいるのですが、
ハンドル数が増えることの「利用可能域」の減少は、これに比べて消費量が少ないとは言え、
出ている様です。
MS側の情報提供(日本語)を待つしかないのでしょうか?

(今回は、同コンポのXP版の採用は見送っていますので、
こちらの9.0 の情報も欲しいと願っています。)

 どなたか、ご意見で結構ですので、レス頂きたく、宜しくお願い致します。

[ツリー表示へ]
タイトルRe: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12651
投稿日: 2008/06/30(Mon) 05:56
投稿者花ちゃん
回答ではありません。
何方からもレスが無いようですし、質問の趣旨がよく解らないので。

> VBアプリからスプレッドシートの1セルに書き込んで表示させると、ハンドルの数が+1
> されています。(.exeを終了しない限り減ることはありません。)

どのような名前のものですか? 同じものが複数という事ですか?
ハンドルとはタスクマネージャのプロセスのタブのところのイメージ名の事でしょうか?
パフォーマンスのタブのところの合計のハンドル数の事ですか?
(上記なら、Excel ではどうなりますか?)

正常な使用で増えると言う事ですか?
(Office Web Compornent 9.0 を配置しただけのコードでも)
3つのセルに書き込めば +3 されるという事ですか?
それは、何でどのようにして確認されたのでしょうか?

>  前に、セル書き込みの直後に同シートに対して、.Refreshメソッドを使うと、
> (Undoの為に用意されているメモリ(?)が開放されているらしく、)

それは、.Refresh すると解放され消えると言う事ですか?

> メモリリソースの不必要な消耗には効果があると、経験上感じてはいるのですが、
> ハンドル数が増えることの「利用可能域」の減少は、これに比べて消費量が少ないとは言え、
> 出ている様です。

それにより、実使用上何か問題が発生しているのでしょうか?
(WinXP 上で結構の量の連続書き込みに使っておりますが、メモリに関する問題は
確認しておりません、ましてハンドルリークではこのサイトで話題にも上がって
いないかと記憶しております。)

正常な使用で発生し、何も問題がないのなら特に気にするような事でもないかと、それより
データ等を書きこんだりした事で使用されるメモリ量の方がはるかに大きいかと
思うのですが

それと、このような質問の場合、ご使用の詳しい環境(VBのバージョンやSP・OS・メモリ・Office のバージョン)
や再現手順・テスト結果(他のPCの場合やOffice XP Web Componentsの場合)等も
書き添えるようにしないと。

[ツリー表示へ]
タイトルRe^2: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12660
投稿日: 2008/06/30(Mon) 14:41
投稿者BamChan
 最小限ですが、事実関係を補足させて頂きます。

> 回答ではありません。
> 何方からもレスが無いようですし、質問の趣旨がよく解らないので。
>
> > VBアプリからスプレッドシートの1セルに書き込んで表示させると、ハンドルの数が+1
> > されています。(.exeを終了しない限り減ることはありません。)
>
> どのような名前のものですか? 同じものが複数という事ですか?
> ハンドルとはタスクマネージャのプロセスのタブのところのイメージ名の事でしょうか?
> パフォーマンスのタブのところの合計のハンドル数の事ですか?
> (上記なら、Excel ではどうなりますか?)
>
> 正常な使用で増えると言う事ですか?
> (Office Web Compornent 9.0 を配置しただけのコードでも)
> 3つのセルに書き込めば +3 されるという事ですか?
> それは、何でどのようにして確認されたのでしょうか?
>
ハンドル数の確認は、仰せの通り、タスクマネージャーのパフォーマンスタグの
ハンドル数の増加で判断しております。
あと、セルへのVBアプリからの表示方法は、
Spreadsheet1.Range("A1").Value = "文字列"
です。(但し、セルアドレス、"文字列"は、固定ではなく、どこでもなんでも起こります。)
タスクマネージャーの表示切替周期が、約1Secですので、
この記述を、Timer2 50mSec 周期で行ったところ、ハンドル数変化は +20ずつ、
又、100mSec で行ったところ、ハンドル数変化は +10ずつとなっているのが
現状です。簡単に再現頂けると思います。


> >  前に、セル書き込みの直後に同シートに対して、.Refreshメソッドを使うと、
> > (Undoの為に用意されているメモリ(?)が開放されているらしく、)
>
> それは、.Refresh すると解放され消えると言う事ですか?
>
> > メモリリソースの不必要な消耗には効果があると、経験上感じてはいるのですが、
> > ハンドル数が増えることの「利用可能域」の減少は、これに比べて消費量が少ないとは言え、
> > 出ている様です。
>
.Refreshメソッドの使い方は、全くの思考錯誤の連続で、
そこから派生してくる当方の解釈は、言葉通り「経験上感じ」ているに過ぎません。
(従って、論拠立ったものとは、お考えにはならないで下さい。)

> それにより、実使用上何か問題が発生しているのでしょうか?
> (WinXP 上で結構の量の連続書き込みに使っておりますが、メモリに関する問題は
> 確認しておりません、ましてハンドルリークではこのサイトで話題にも上がって
> いないかと記憶しております。)
>
> 正常な使用で発生し、何も問題がないのなら特に気にするような事でもないかと、それより
> データ等を書きこんだりした事で使用されるメモリ量の方がはるかに大きいかと
> 思うのですが
>

 当方の現在の課題は、2晩3晩は軽くランニングできるものでなくてはなりませんし、
アクチュエータを伴う機器の、終夜ランニング申請には、厳しいハードルのクリアも必要です。
「8時間連続で動いたから、24時間、96時間も大丈夫」という、
保障になる情報を、何れかから頂きたいのが、本心です。


> それと、このような質問の場合、ご使用の詳しい環境(VBのバージョンやSP・OS・メモリ・Office のバージョン)
> や再現手順・テスト結果(他のPCの場合やOffice XP Web Componentsの場合)等も
> 書き添えるようにしないと。

これは、今回は意図的に、敢えて特定させていません。
Win XP SP2,VB6.0です。

MS社の技術情報案内、並びに、その日本語説明を、有償無償で情報提供されている皆様に、
今回話題の、「ハンドルリーク」なるものが、「どの程度、有害」なものなのかに関して、
ご意見も含めて、ご認識をお伺い致したい次第です。

[ツリー表示へ]
タイトルRe^3: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12661
投稿日: 2008/06/30(Mon) 15:13
投稿者花ちゃん
Microsoft Office Web Components 9.0 と Microsoft Office XP Web Components で
下記コードで動作を確認したところ Microsoft Office Web Components 9.0 では
ハンドル数が増加しますね。

Microsoft Office XP Web Components では、増加はしません。

多分、http://support.microsoft.com/kb/414107/ja と何らかの関連があるのでは
ないでしょうか?(特に対策はとられていない。仕様の範囲?)
従って、Microsoft Office Web Components 9.0 を使用する以上避けられないのでは。

WindowsXP をお使いなら、 Office のバージョンも XP にUPされたらいかがでしょうか?

   For i = 1 To 10000
      For j = 1 To 10
         Spreadsheet1.Cells(i, 1).Select
         Spreadsheet1.Cells(i, j).Value = i & " ABCD"
        ' Spreadsheet1.Refresh    'これを実行しても同じように増加する
         DoEvents
      Next j
   Next i

WindowsXP Microsoft Office Web Components 9.0.0.8966 SP-3 で増加を確認

[ツリー表示へ]
タイトルRe^4: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12667
投稿日: 2008/07/02(Wed) 14:50
投稿者BamChan
 有難う御座います。こちらでの実証に今までかかってしまいました。

> Microsoft Office Web Components 9.0 と Microsoft Office XP Web Components で
> 下記コードで動作を確認したところ Microsoft Office Web Components 9.0 では
> ハンドル数が増加しますね。
>
> Microsoft Office XP Web Components では、増加はしません。
>
> 多分、http://support.microsoft.com/kb/414107/ja と何らかの関連があるのでは
> ないでしょうか?(特に対策はとられていない。仕様の範囲?)
> 従って、Microsoft Office Web Components 9.0 を使用する以上避けられないのでは。
>
> WindowsXP をお使いなら、 Office のバージョンも XP にUPされたらいかがでしょうか?
>
>(中略)
> WindowsXP Microsoft Office Web Components 9.0.0.8966 SP-3 で増加を確認

 確かに、こちらでもXP版では増加しないことが確認できました。
増加の確認されたCompo.も、ご指摘頂いたものと同一でした。

 こちらでは、XP Compo.で、等価品を、取り敢えずは作成できている訳ですが、
Compo.のヘルプの中に、配布に関して、「ライセンス」の話題に触れられていました。
「Office XP のライセンス取得をされていないと、‥」という書き出しで、
「配布先での動作に制限がある」との旨の記述がありました。

 で、重ねてお伺いしたいのですが、当方では、本Compoも含めたインストールファイル
(自己解凍.exe)を作ってみたところ、Excel 2002 のインストールされているPCで、
問題なく動作できています。(この事実は、余り参考にはならないと思いますが。)
 手元を探す限り、「Office 2000 のみの環境」がなくて確認できないのですが
このインストールファイルで配布したとして、その環境で動作できるものでしょうか?
或いは、配布させても構わないものなのでしょうか?

「ライセンス」の本来の意味が(抽象的にしか)判っていなくて、恐れ入りますが、
お教え頂けますでしょうか?

[ツリー表示へ]
タイトルRe^5: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12672
投稿日: 2008/07/02(Wed) 15:48
投稿者花ちゃん
> 「Office XP のライセンス取得をされていないと、‥」という書き出しで、
> 「配布先での動作に制限がある」との旨の記述がありました。

だったら聞くまでもなく。

>  手元を探す限り、「Office 2000 のみの環境」がなくて確認できないのですが
> このインストールファイルで配布したとして、その環境で動作できるものでしょうか?

そのプログラムがどのようなものか解らないし、その辺は何とも答えようがありません。
(Office XP だけとは限らないし)

> 或いは、配布させても構わないものなのでしょうか?
配布先での動作に制限があっても問題ないのなら。

> 「ライセンス」の本来の意味が(抽象的にしか)判っていなくて、恐れ入りますが、
> お教え頂けますでしょうか?
解らなければ検索して調べましょう。
http://www.google.com/search?num=50&hl=ja&inlang=ja&q=%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%A8%E3%81%AF&lr=lang_ja

http://support.microsoft.com/kb/288729/ja

[ツリー表示へ]
タイトルRe^6: Office Web Compornent でも、ハンドルリークを招くんでしょうか?
記事No12675
投稿日: 2008/07/02(Wed) 16:31
投稿者BamChan
 いつもながら、有難う御座います。
>
> > 或いは、配布させても構わないものなのでしょうか?
> 配布先での動作に制限があっても問題ないのなら。
>
> > 「ライセンス」の本来の意味が(抽象的にしか)判っていなくて、恐れ入りますが、
> > お教え頂けますでしょうか?
> 解らなければ検索して調べましょう。
> http://www.google.com/search?num=50&hl=ja&inlang=ja&q=%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%A8%E3%81%AF&lr=lang_ja
>
> http://support.microsoft.com/kb/288729/ja
(結局、こういった『手取り足取りで』ご教示頂いています。)

 これで、クライアント様を説得できるだけの、論拠を得られそうです。
感謝致します。今回も有難う御座いました。

[ツリー表示へ]