APIの実行速度を上げてみた ~マルチスレッド編~



●著者

がくしです。







●目的

繰り返しAPIを呼び出すコードを書くと、実行に長い時間がかかってしまいます。そのため本稿では、実行速度を改善させるマルチスレッドという技術を使ったコードを紹介します。ここではコードと備忘録的なメモを載せる程度に留めますが、マルチスレッドの便利さだけでもお伝えできればと考えています。



●プログラム概要

最新記事一覧を取得した後、各記事のlike数を取得します。記事の数だけlike数取得APIを叩くことになるので、そこをマルチスレッドで処理しました。



●下準備

APIで記事一覧取得とlike取得を実行するコード



●マルチスレッド処理


●補足

Thred

target:処理内容

args :targetに渡す引数

start :処理開始

join  :処理終了まで待機


Queue

マルチスレッドの入出力を管理


処理イメージ

入力値

worker_queue

↓(各スレッドに振り分け)

マルチスレッド処理

result_queue

↓(順番を決めて処理)

出力値


●シングルスレッド処理

性能比較のための、マルチスレッドを使わない処理をするコード


●性能比較

最新記事1000件のlike数の取得にかかる時間を、シングルスレッドとマルチスレッドで比較しています。二倍以上の速さになっていることが分かると思います。


シングルスレッド

マルチスレッド



●最後に

全くの説明不足ではありましたが、マルチスレッドで実行速度が上がったことは伝わったかと思います。実行速度に苛まれている方のお役に立てれば幸いです。


かしこ。

公開日:2018/11/09
獲得ALIS:43.69
がくし's icon'
  • がくし
  • @gaxiiiiiiiiiiii
養蜂家。暇な時にプログラミングをして遊んでる。
コメントする
コメントする