アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
ご面倒かけますが、ご回答頂ければ助かります。

状況を説明させて頂きますと
あるプログラム(計算して結果を出力)をネットワーク上で共有フォルダにアクセスして
実行しております。

(1)スタンドアローンで実行(自分のPCにプログラムを保存)すると、実行時間が1~2分
(2)ネットワークの共有フォルダにアクセスして実行した場合 5分~10分かかります。
※できるだけマスタ配布のような業務が入る為、スタンドアローンでは利用しない方針です

なぜこんなに実行時間に差がでるのかという質問を頂いてます。

ネットワーク上のプログラムを実行しているのですから、ある程度遅くなるのは
当たり前です。とは回答しているのですが、理解してもらえません。

WireSharkを利用して、パケットを拾ったのですが
・ TCP Dup ACK
・ TCP Retransmission
・ TCP Previous segment lost
上記のようなパケットを拾いましたが、パケットを分割や再送信を行っているので
遅くなっていると話をしましたが、これがネットワークの問題なのかプログラムの問題か
確認(考え方)するにはどうしたらいいでしょうか?

参考程度でも結構ですので、お願いいたします。

A 回答 (2件)

まず前提として、


スタンドアロンの場合、自らのプログラムやデータはメモリー上に格納され
更新など行っても、実際にはファイルに書かれるのでは無くメモリー上で更新されます。
なので、物理的なアクセスの発生が少なく高速で動作します。
しかしネットワークの場合は、「共有」という概念が働く為なるべくメモリーで
処理するのでは無く物理的なファイルに更新がかかるようになります。
※このあたりはソフトの設計にも共有の仕方によりOSの制御にもよりますが....

また、それらの読み込み・更新毎にネットワークを使ってデータやり取りする為、
ネットワークへの負荷が掛かること、ネットワークの混雑具合に影響される事など
速度低下する要因が多くなりますので、ネットワーク上のデータを利用するという事は
こういう事だと理解してもらう必要があります。

そして、パケットのエラーの内容を見ていると、ネットワークで障害が発生していますね。
原因としては、ケーブル・HUB・ルータ・NICなど機器全てを疑う必要があります。
まず、同じ事を複数のパソコンで実行して、同じような状況になる端末を特定し、
その影響範囲を調べます。

結果、その範囲に使ってる機器が特定されますので、
その機器を交換して問題ない事を検証すれば良いと思います。
    • good
    • 0
この回答へのお礼

忙しいところご回答いただきありがとうございました。

一度、他のPC上でもエラーが発生するか確認したいと思います。

まあ、もう一度話をして理解頂く様努めたい思います。
ありがとうございました。

お礼日時:2012/06/26 14:06

動かすプログラムとデータ量にも夜と思いますが、


通信速度の問題ではないでしょうか。

一般的なネットワークLANケーブルの速度1Gに対して、
ここ数年のPCの内部通信速度は3Gないしは6Gの通信速度のはずです。
計算時に使用するデータサイズによっては、
当然通信に3倍から6倍程度の差が生じるため、
1~2分に対して5~10分は妥当な数字だと思います。

確認方法はトラフィックの量を計測して予測時間を計算すれば、
ネットワークを使っての演算に時間がかかるのを納得してもらえるのではないでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

二つの回答とも非常に参考になりました。

ポイントを付与できず申し訳ありません。
最初の回答の方に付与させていただきました。

ご回答頂いて点を参考にしたいと思います。

ありがとうございました。

お礼日時:2012/06/26 14:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!