HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0405
こいる大きなhsファイルを追加するとHSP Docs Libraryが抽出中に内部エラーを出して落ちる3解決


こいる

リンク

2020/4/5(Sun) 10:33:52|NO.89964

とあるプログラマさんの「constant.hs」を使いたいのですが、
http://hsp.tv/play/pforum.php?mode=all&num=89458

ファイルサイズが大きいからなのか、
追加しても「HSP Docs Library」が内部エラーを出して落ちてしまいます。


これを入れると、「HSP Docs Library」からWin32APIの定数を検索することができると知り、
HSPの「doclib」フォルダにconstant.hsを入れて「hdl.exe」を起動したのですが、

データを収集した後の「抽出中...」というところで、応答なしになり、
どんどん使用メモリが増えて、
最終的に内部エラー26を出して、落ちてしまいます。

エラー26は「メモリの確保ができませんでした」だそうなのでメモリ不足だと思うのですが、(搭載メモリ4GB)
メモリの増設やPCの買い替えはしたくないです。


どうにかできないのでしょうか?
「constant.hs」とても便利そうなので使いたいです。

また、「抽出中...」とは一体何をしている最中なのですか?
なぜあんなにもメモリを使うのか知りたいです。(最大1800MB近く使用していた)



この記事に返信する


kanamaru

リンク

2020/4/5(Sun) 10:40:25|NO.89966

僕もそのhsファイル使ってますけど問題なく使えました。
たぶんhsファイルを解析して情報を抽出しているのだと思います。
winapiに関する定数がたくさん入っているので情報量が他のhsファイルと
比べ物にならないからメモリ消費がやばいのだと思います。
(もしかしら他のhsファイル全部足してのより多いかも)
考えられる対策としたら、
hdlってhsp製なんですけど32bitアプリケーションだと思うので
64bitランタイムでexe作り直したらもしかしたらいけるかも?
権利とか気になるけど、hdlのソースは手元にあるので
試しに64bitで作ってみます。
一応hspのバージョン教えてくれますか?
たぶんhdlはhspのバージョンに依存しないとは思うけど万が一を考えて
バージョンを合わせるので。



とあるプログラマ

リンク

2020/4/5(Sun) 11:02:49|NO.89967

本人です。
ご不便をおかけして申し訳ないです。


さて、constant.hsですが当方の環境で確認したところHDL.exe起動時のドキュメント収集時に一時的にフリーズするものの待ち続ければ正常に完了したので、環境依存の問題かと思われます。
私のPCは少しスペックが高いものを使用しているのでそれが原因かもしれませんが、検証してみたところメモリを1800MB使うことは無く最大80MB程度であったためそれ以外にも原因はありそうです。

私が使っているのがHSP 3.6betaのものなので、もしかしたらそちらを使うことで解決するかもしれません。(このバージョンでHDLが作りなおされているので)
またconstant.hsが重複していないか(doclibとhsphelpの両方に入っているなど)も確認してみてください。

抽出中というのは恐らく.hsファイルからヘルプを抜き出して構成している状態です。
constant.asは約2万5千個のWIN32APIを収録しているので、それ故にその作業がかなり大量になるためフリーズやメモリ確保不足等に陥りやすいと思われます。


ですので、

・constant.hsが重複していないか確認する。
・HSP 3.6beta同梱のHDLを試してみる。
・抽出中…となっているときはHDLに触らない (マウスカーソルをウィンドウ内に合わせもしない)

の確認をしていただけないでしょうか。
もしこれでも問題が残るようでしたら再度ご報告お願いいたします。



こいる

リンク

2020/4/5(Sun) 11:56:31|NO.89968

HSP3.51を使っていたのですが、
hdlをHSP3.6β2に入っているhdlに置き換えるとできました!(使用メモリも格段に下がりました)

kanamaruさん、とあるプログラマさん、お二人ともありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.