回答依頼を頂いたので回答しますが、そこまで深く理解しているわけではないので
質問者様の得たい回答にならないかもしれませんが、ご了承ください。
また、勘違いされているような気がするので、通信処理に関する説明も書きましたが、
実質**「プログラム部分の改善」**が一番速度向上につながるはずです。
現在のAPIのGETとPOSTがそれぞれ0.1~0.3秒ほどかかりますが、これらを0.01~0.1秒に抑えたいです。
通信処理は基本的にAPI提供側(サーバ側)の処理や、送受信するデータの量に応じて変わるので、
取得側で極端に早めることはできないはずです。
クライアント「これとこれに合う条件ののデータください」
↓
サーバ「ほらよ」
という単純なものではなく、
クライアント「これとこれに合う条件のデータください」
↓
サーバ「うっす」
サーバ「元データ加工して送れるようにするで」
サーバ「データ量多いから分割して送るで」
...
サーバ「これが最後のデータや受け取れ」
というようにサーバ側でもいろいろ処理したり、データ量の応じて分割したりなどで
サーバ側で時間がかかる場合があります。
アクセス集中してるときなんかは病院の待ち時間みたいに待たされることもあります。
そういう理由でデータの取得に関する通信部分では大幅な改善はあまり見込めないでしょう。
(データ取得できるところがいくつかあるなら変わるかもしれません。)
他に改善できる点としては大きく分けてプログラム部分の処理とPC環境に分けられます。
プログラム部分の改善
通信中の処理を大幅改善する方法は上記理由から難しいですが、
通信前および通信後の処理を改善することで全体の処理速度を上げることは可能です。
※限界はあります
たとえば通信時になにかデータを渡すのであれば、なるべく渡すデータの加工をしないとか、
取得するデータの期間や量を必要最低限にするなどが考えられます。
通信後、取得したデータを加工する場合もアルゴリズムを見直して無駄な処理を省くなど
そういう点で改善できる点はあるかと思います。
取得したデータは膨大なことが予想されるので、特に無駄なループや再帰処理は省くとか
そもそも取得時に処理するものとアクション時(クリックして詳細出すとか)に処理するもので
最低限の処理だけを行うように分割するとかで改善できるかと思います。
・'net/http'ではない速いライブラリを使う
ご提示いただいた一アイディアのこちらはプログラム部分の改善になりますね。
が、これが標準のライブラリなので、特殊な通信処理をしないのであればこれが一番良いと思います。
ただ、これ系統のライブラリを使用したことがないので推測ですが、せいぜいデータ通信の際の
いろいろな項目の指定をやりやすくしたものだと思うので、大幅な改善にはならないと思います。
PC環境
PC環境というかネットワーク部分も含めてですが、そもそもの機器の性能の改善によって
速度を早める方法があります。
(個人で使用する場合の想定なので、無特定多数の方に使用してもらうものを開発しているのであれば
こちらの対策は個々の環境に寄るものなので全くの無意味なものになります。)
CPUやメモリなど、簡単に言えばハードウェア部分の性能が高いほど処理速度が早くなります。
また、ご利用のネットワーク速度によっても速度は向上します。
極端に言えば最大100Mbpsのネットワークと最大1Mbpsのネットワークでは100Mbpsの方が
理論上は早いということになります。
また、使用しているLANケーブルや無線規格がその速度に対応しているかかとかにもよります。
その他
・OSを変える
提供されているサービスによって異なるのでなんとも言えませんが、
OSを変えることでハードウェア部分の性能が変わるなら改善の見込みはあります。
(あっても微々たるものな気がしますが。)
あとは他のプロセスが動いてるかとかによって変わります。
最初にも書きましたが、おそらく質問者様が改善できるところがあるとすれば
プログラム部分の改善しかないように思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 05:18