- Community Home
- >
- HPE Community, Japan
- >
- Legacy
- >
- OpenVMS
- >
- メモリ確保、解放について
OpenVMS
1820393
メンバー
3328
オンライン
109623
解決策
フォーラム
カテゴリ
Company
Local Language
戻る
フォーラム
ディスカッションボード
フォーラム
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
ディスカッションボード
ディスカッションボード
ディスカッションボード
ディスカッションボード
フォーラム
ディスカッションボード
戻る
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
ブログ
コミュニティ言語
言語
フォーラム
ブログ
トピックオプション
- RSS フィードを購読する
- トピックを新着としてマーク
- トピックを既読としてマーク
- このトピックを現在のユーザーにフロートします
- ブックマーク
- 購読
- 印刷用ページ
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-17-2005 12:14 PM
12-17-2005 12:14 PM
メモリ確保、解放について
C言語で開発しているのですが、malloc()でメモリ確保を行って、処理終了後、free()にてメモリ解放を行うコードが1関数内で完結するようにコーディングしたものがあります、その関数はプログラムが起動中に何度も呼び出されます。またプログラムは何ヶ月も連続で動作するものです。
メモリの解放はfree()にて間違えなく行っているのですが、実際にはメモリをどんどん消費して行くと指摘を受け(実際に症状が発生しているらしいです)、VMSではmalloc()->free()の方法ではメモリを使えないと言われました。にわかに信じがたいのですが、本当なのでしょうか?システム的な設定などの問題があるのでしょうか?
どなたかお分かりになる方いらっしゃましたら、おしえてください。よろしくお願いします。
コンパイラのバージョン(cc/versionを実行しての表示):
Compaq C V6.4-008 on OpenVMS Alpha V7.2-1
メモリの解放はfree()にて間違えなく行っているのですが、実際にはメモリをどんどん消費して行くと指摘を受け(実際に症状が発生しているらしいです)、VMSではmalloc()->free()の方法ではメモリを使えないと言われました。にわかに信じがたいのですが、本当なのでしょうか?システム的な設定などの問題があるのでしょうか?
どなたかお分かりになる方いらっしゃましたら、おしえてください。よろしくお願いします。
コンパイラのバージョン(cc/versionを実行しての表示):
Compaq C V6.4-008 on OpenVMS Alpha V7.2-1
3件の返信3
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-21-2005 05:30 PM
12-21-2005 05:30 PM
メモリ確保、解放について
可能性としては
1.その関数にバグがあった。
2.その関数以外の部分でプログラムにmalloc()やstrdup()などが使用されていた。
それから
3.V7.2-1だとVMS721_ACRTL-V0400というパッチがある(が関係なさそう)。
4.lib$get_vm()、lib$free_vm()に書き変えてみると緩和された。
デバッガヒープアナライザでなんとかならんだろうか。
1.その関数にバグがあった。
2.その関数以外の部分でプログラムにmalloc()やstrdup()などが使用されていた。
それから
3.V7.2-1だとVMS721_ACRTL-V0400というパッチがある(が関係なさそう)。
4.lib$get_vm()、lib$free_vm()に書き変えてみると緩和された。
デバッガヒープアナライザでなんとかならんだろうか。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-21-2005 06:22 PM
12-21-2005 06:22 PM
メモリ確保、解放について
Vernonさん返信ありがとうございます。
各項目の回答としては。
1.関数にバグは無いと確信しています。
2.malloc,freeは他には存在しませんし、strdupも使用していませんでした。
3.パッチについて、よくわかりませんでした(が関係なさそうと言うことですので気にしないことにしました)
4.代替案は考えていません。ですがありがとうございます。
このプログラムは安全を考慮してか、メモリ確保は基本的にデータの最大値を想定して配列で固定サイズを確保するようになっています。
そこで無駄が多いので私がmallocで必要なときに必要なサイズのメモリ確保を行おうとしたところ、メモリ使用量が増加して…と槍玉に上げられていまして、
代替案としては他の方法にならって、固定サイズの確保を行うことで回避できるのですが、私の興味もあり、VMSではmalloc,freeが使用できないものかどうか、など情報やご意見をお持ちの方がいらっしゃらないかと思い質問させていただきました。
VMSに関してあまり経験がありませんので、わからないことが多いです。「LIB$〜」とか「デバッガヒープアナライザ」とか、何か調べようとしてもなかなかドキュメントから探し出せなくいつも四苦八苦しています。
引き続き何らかの情報が頂けましたらよろしくお願いします。
各項目の回答としては。
1.関数にバグは無いと確信しています。
2.malloc,freeは他には存在しませんし、strdupも使用していませんでした。
3.パッチについて、よくわかりませんでした(が関係なさそうと言うことですので気にしないことにしました)
4.代替案は考えていません。ですがありがとうございます。
このプログラムは安全を考慮してか、メモリ確保は基本的にデータの最大値を想定して配列で固定サイズを確保するようになっています。
そこで無駄が多いので私がmallocで必要なときに必要なサイズのメモリ確保を行おうとしたところ、メモリ使用量が増加して…と槍玉に上げられていまして、
代替案としては他の方法にならって、固定サイズの確保を行うことで回避できるのですが、私の興味もあり、VMSではmalloc,freeが使用できないものかどうか、など情報やご意見をお持ちの方がいらっしゃらないかと思い質問させていただきました。
VMSに関してあまり経験がありませんので、わからないことが多いです。「LIB$〜」とか「デバッガヒープアナライザ」とか、何か調べようとしてもなかなかドキュメントから探し出せなくいつも四苦八苦しています。
引き続き何らかの情報が頂けましたらよろしくお願いします。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
12-22-2005 06:35 PM
12-22-2005 06:35 PM
メモリ確保、解放について
malloc使ってるけど、プログラムのバグでfreeされなかったというぐらいしか知らないので、その関数を適当なサイズで百万回(?)使用するサンプルを作ってバグレポートしてみてはどうでしょうか。
資料はgoogleで検索するしかないのでは。
LIB$〜はシステムコールみたいなので、「RTL Library (LIB$) Manual」にあります。英語しかないのでここ。
http://h71000.www7.hp.com/doc/os82_index.html
「デバッガ説明書」はV7.2-2のところにあるようです。
http://h50146.www5.hp.com/products/software/oe/openvms/manual/
資料はgoogleで検索するしかないのでは。
LIB$〜はシステムコールみたいなので、「RTL Library (LIB$) Manual」にあります。英語しかないのでここ。
http://h71000.www7.hp.com/doc/os82_index.html
「デバッガ説明書」はV7.2-2のところにあるようです。
http://h50146.www5.hp.com/products/software/oe/openvms/manual/
上記の意見は、Hewlett Packard Enterpriseではなく、著者の個人的な意見です。 このサイトを使用することで、利用規約と参加規約に同意したことになります 。
企業情報
© Copyright 2025 Hewlett Packard Enterprise Development LP