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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0122
ぽん吉C++でdllを作ってhspから呼び出してる人7未解決


ぽん吉

リンク

2015/1/22(Thu) 19:10:53|NO.67042

高速な処理を要求される処理を扱う場合は、C++などでdllを作成して、
hspから呼び出したほうがいいのでしょうか?



この記事に返信する


kanahiron

リンク

2015/1/22(Thu) 20:29:55|NO.67044

HSPで16k桁を求めるのに124秒かかるのに対して1995年に作られたソフトでさえ0.11秒です(実測)
もしかするとπ(文字化け用に:円周率)の計算とかは少し早いかも(しれない)

は無責任なんじゃないかなぁ…と…(94倍違います) (外部DLL使用のHSPの計算機では10.3秒のものも有りましたが)
高速な処理を要求される処理を扱う場合は、C++などでdllを作成して、
hspから呼び出したほうがいいのでしょうか?
全部Cで作るよりは遅くなりますが、処理によってはHSPの数百倍の速度になると思います

HSPの計算速度に使ったソフト「HSP de 円周率」
http://www.vector.co.jp/soft/win95/edu/se479047.html

比較用の1995年製のソフト(恐らくC)「SuperPi mod」(mod版は時間計測を1/1000s単位にしただけです)
http://www.techpowerup.com/downloads/366/super-pi-mod-v1-5/

外部DLL使用のHSP製の円周率計算ソフト「高速電子式計算機」
http://hsp.tv/contest2007/list_n4.html

参考にしたサイト
http://ysrken.blog.fc2.com/blog-entry-38.html



774

リンク

2015/1/22(Thu) 22:52:32|NO.67046

関数数個程度ならマシン語化という手もありますよ。

Cソースからキー一発でマシン語抽出できるような環境さえ組んでしまえば、
HSPで気ままに書いて速度稼ぎたい所だけマシン語化という事が気軽にできます。



skyblue

リンク

2015/1/23(Fri) 16:27:27|NO.67048

>Cソースからキー一発でマシン語抽出できるような環境さえ組んでしまえば、
>HSPで気ままに書いて速度稼ぎたい所だけマシン語化という事が気軽にできます。
C/C++ならリンクの時点で
別に作ったアセンブリからのオブジェクトファイルを加えることができるので
機械語を抽出・・・は必要が無いです。
ただし、引数を工夫するなりしてリンカに渡さないとだめですが。



774

リンク

2015/1/23(Fri) 19:18:38|NO.67050

必ずしもdllで用意する必要はないですよ、といった回答のつもりだったのですが
dll作成の過程でHSPに組み込めるファイルも生成される、という事でしょうか?

リンカやオブジェクトファイルなどコード外の事はさっぱりでして…



skyblue

リンク

2015/1/24(Sat) 07:12:18|NO.67057

>dll作成の過程でHSPに組み込めるファイルも生成される、という事でしょうか?
DLLの時は分からないですが、
HSPに組み込みではなくHSPDishもしくはC/C++オンリープログラムです。
DLLの時もおそらくできるはずです。



科学太郎

リンク

2015/1/24(Sat) 15:46:28|NO.67065

> 高速な処理を要求される処理を扱う場合は、C++などでdllを作成して、
> hspから呼び出したほうがいいのでしょうか?
以前の質問の続きですよね。これ?

つまり、多倍長演算の処理を高速で行いたいということでしょう。
ベクターにC/C++で作成されたライブラリがあったと思います。
探してみては。

そうすれば自分で作らずにHSPで呼び出せるかもしれません。
なお、素数を見つけるプログラムならHSPでも「エラトステネスのふるい」で求められます。
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9

整数型配列でビット処理をすれば良いでしょうね。

> 高速な処理を要求される処理を扱う場合は、C++などでdllを作成して、
結局はどのような処理を行いたいの?
多倍長演算の処理?
素数プログラム?



774

リンク

2015/1/24(Sat) 18:51:04|NO.67067

>skyblue様
言葉足らずで誤解を招いたようですね、すみません。
私の「マシン語化」はこちらのようなもののつもりで使ってます。
>http://chokuto.ifdef.jp/urawaza/mcn/

よってNO.67046は…
HSPスクリプト内にC等から生成したマシン語コードを組み込んで関数として呼び出すことで
HSP製プログラム単体のまま、部分的にC並の処理速度を実現可能ですよ。
という回答です、失礼致しましたm(_ _)m



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