スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« README.txtの記述とか | トップページ | 段取りの関係で・・・ »

小容量ファイル転送の高速化

今は、Mirror-DTCの開発フェーズで、まずは、macOS版をWindows版のVer1.4.0相当に更新しようとしているのだが、現行版では小容量ファイルを多数転送すると転送容量の割には遅かった。なので、Ver1.4.0では、この転送処理も高速化している。

現行版では、「小容量ファイルを多数転送すると転送容量の割に遅い」のは何故なのか、というと、データ転送以外の処理に時間がかかっているからだ。
 
具体的には、ファイル転送時には、ファイル名の転送が必要で、かつ、転送先に同名のファイルが存在しているかどうか等のステータスを転送先から貰わなければならない訳だ。
 
つまり、ファイルのサイズが小さい場合にも、転送先との通信シーケンスは変わらないので、データ転送時間が短くなる小容量ファイル転送時には、相対的に、データ転送時間以外の時間がオーバーヘッドとして目立つ格好になる訳だ。
 
もっとも、上記のオーバーヘッドは0.1秒程度なので、単一ファイルの転送時には、意識されない時間だったのだが、現行のVer1.3.1では、複数ファイルの転送機能を追加したので、ファイルあたり0.1秒のオーバーヘッドでも、気になる様になった訳だ。
試しに、Ver1.3.1を使って総容量が10MB程度で400ファイルくらいが格納されたフォルダーを転送すると、約100秒かかったのだが、10MBの単一ファイルを転送すると2秒程度しかかからなかった。
 
と、言う事で、複数ファイル転送時には、ファイル名の転送等で転送先とのハンドシェイクが入るので、同一容量の単一ファイルを転送する場合よりも時間がかかるのは致し方ないのだが、Windows版で上記と同じフォルダーを転送すると、60秒程度しかかからない訳だ。
 
これは、Ver1.3.1では、まず、macOS版の開発を行い、それを移植する格好で、Windows版を開発したので、Windows版では、ファイル転送機能に改良が加えられた分、macOS版よりも高速に動作する様になっている訳だ。
 
なので、Ver1.4.0では、Windows版開発時に行った改良を適用したのだが、更に、改良できる部分があったので、その改良も行った。
 
その結果として、上記のフォルダー転送は25秒程度で終わる様になったので、現行版と比べると約4倍、Windows版と比べても2倍以上は高速に処理できる様になった事になる。
 
もっとも、ファイル転送速度自体が高速化された訳ではないので、数GBくらいある様な動画ファイルの転送処理なんかでは、処理時間は目に見える変化はない筈だ。
 
しかし、作者の様に、開発ソフトのソースフォルダーなんかをそのまま転送しようとする様な人の場合、中には小容量のファイルが文字通り、五万とあったりする場合もあるので、そういうケースでは、Ver1.4.0のファイル転送速度は圧倒的に高速になる筈ではある。
 
ただし、現行版の処理速度が遅いのは、送信側が受信側からのステータスを待つ場合にポーリング処理を行っているからだ。
 
つまり、Ver1.4.0では、このポーリング処理をイベント待ちに変えたりして高速化している訳なのだが、改良は送信側で行われているので、macOS版Ver1.4.0が受信側に回る場合には、高速化の効果はない。
 
具体的には、サーバーがmacOS、クライアントがWindowsの場合、クライアントから「サーバーからコピー」を実行すると、高速化されるのだが、「サーバーへコピー」を行う場合には高速化はされない。逆に、サーバーがWindows、クライアントがMacの場合、「サーバーへコピー」は高速化されるのだが、「サーバーからコピー」は高速化されない。
 
と、言う事で、効果は限定的なのだが、Ver1.4.0では、小容量ファイル転送時の処理速度は高速化されているので、そういうファイル転送を頻繁に行う人には有用なバージョンアップになる筈だ。

« README.txtの記述とか | トップページ | 段取りの関係で・・・ »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/67368751

この記事へのトラックバック一覧です: 小容量ファイル転送の高速化:

« README.txtの記述とか | トップページ | 段取りの関係で・・・ »

2018年11月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google