
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>度々の回答ありがとうございます。
「プロセス間通信のほうが遅い」>とのことですが、具体的な実例などありますでしょうか?
なぜ遅いか?考えればすぐわかると思いますが。
単純なものは”速い”、複雑なものは”遅い”です。
最初の回答で書いたurlの方法が.NETでのまっとうなプロセス間通信の方法だと思います。
が、通信を行う双方のアプリを不正なアクセスから保護するために、何層にも処理の階層(レイヤー)が分かれて、それぞれに手順が定められています。
そんな複雑なことをやるよりは、単純な処理であるファイルの方が速いのはすぐに理解できますよね。#2に書いたとおり、キャッシュに乗ったらほとんどオンメモリでの処理です。
というか、テンポラリ用に、明示的にメモリ上にファイルを作ることだって不可能ではありません。
>>というか、速度を求めるのに今のWindowsで.NETを選択してる時点で間違ってるような・・・
>また、VB.NETを使用している理由ですが、現在および将来
>において、入手が可能な開発環境であるということです。
うーん、なぜ処理速度をそこまで求めるのでしたらCやC++ではないのでしょうか?という意味だったんですけど。
開発環境の入手性でしたらVC++.NETなら変わりませんが。
今のWindowsでは、.NET Frameworkは階層的にWindowsAPIの上にのっているだけです。つまり、余分なオーバーヘッドたっぷりです。
ただし、次期OSでは階層が逆になるので.NETの方が速くなる可能性もありますが。
ちなみに、一番単純で速いプロセス間通信は、DLLを使った共有メモリだと思います。ただし、.NETを使うんでしたら実現できませんが。
http://www.cisnet.or.jp/home/tsuneoka/win32sub/3 …
参考URL:http://www.cisnet.or.jp/home/tsuneoka/win32sub/3 …
No.2
- 回答日時:
>この処理が数回なら全く問題ではないのです
が、数百回となると100ミリ秒でも問題となってきます。
うーん、単純に回数を掛けても意味が無いかと。
特にファイルなんて、OSによるキャッシュがバリバリ効きます。
ちゃんとした手順を踏んだプロセス間通信よりよっぽど速いと思います。
ところで排他や同期は考えないんですか?
プロセス間通信のオーバーヘッドよりこういうことのほうがよっぽど時間がかかることだと思うんですが。
というか、速度を求めるのに今のWindowsで.NETを選択してる時点で間違ってるような・・・
この回答への補足
度々の回答ありがとうございます。「プロセス間通信のほうが遅い」
とのことですが、具体的な実例などありますでしょうか?「業務」
なので、抽象的な「遅いと思う」では納得させることができないので、
具体的な内容があれば、それが知りたいです。
また、VB.NETを使用している理由ですが、現在および将来
において、入手が可能な開発環境であるということです。
No.1
- 回答日時:
数十倍とのデータを受け渡すのに、ファイルでは遅いってのが良くわかりませんが。
FDか何かと勘違いしてませんか?で、
.NET プロセス間通信
こんなキーワードで検索すれば、いろいろと出てきますが。
Googleの結果の2番目はこれ
http://www.microsoft.com/japan/msdn/thisweek/ste …
あとは、.NETで準備してるような方法で満足できないんでしたら、
1.WindowsAPIを使ってファイルマッピングを使う
2.WM_COPYDATAを使って別プロセスのウィンドウにメッセージとして送る。
3.WindowsAPIを使ってパイプ
ですかね。
ですかね。
この回答への補足
「遅い」というのが客観的な表現ではなかったため、誤解をされているようです。
簡単な実験プログラムで試験したところ、ファイルでデータの受け渡しを行うのに
かかる時間は約100ミリ秒でした。この処理が数回なら全く問題ではないのです
が、数百回となると100ミリ秒でも問題となってきます。最低でも5倍、できれ
ば10倍以上のスピードアップが必要なのです。また、Googleでの検索で出てくる
内容についても、具体的な実装には少々使えなさそうな感じがします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
vba ActiveSheet.pasteを使った...
-
マウスポインタの変更
-
VC++の外部依存関係
-
ドラッグアンドドロップでファ...
-
VB6でのファイル作成方法
-
Cでのネットワークファイルの読...
-
ダイアログボックスで複数フォ...
-
大きいサイズのテキストファイ...
-
ハッシュの計算時間について
-
PHPでCSVの読み込みができません。
-
VBAにてEXCEL以外のファイル(テ...
-
同じ名前のファイルを作った場...
-
テキストファイルの文字化けに...
-
C言語 コンパイルエラー LNK1136
-
Javascript で INI の読み書き
-
ファイル名の先頭にアンダース...
-
【C#】リソースファイルの埋め...
-
Javaソース上でのきれいなSQLの...
-
libtiffのLoadTIFFinDIB()の返...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
VB.NETによるプロセス間通信
-
営業秘密の漏洩について
-
Thunderbirdでemlファイルを開...
-
ドラッグアンドドロップでファ...
-
CSVファイルへの保存の際、デー...
-
バッチで118項目のCSVを処理し...
-
SGファイルって何ですか?
-
ファイルの結合
-
分割コンパイルの#defineについて
-
VBAにてEXCEL以外のファイル(テ...
-
2つのCSVファイルの比較
-
ShellExecuteEx→WaitForSingleO...
-
VBに、Cのincludeのようなもの...
-
RPGでファイル名(もしくはレコ...
-
マウスポインタの変更
-
Excelマクロでの再読込み方法
-
関数の呼び方について
おすすめ情報