%E6%9C%AC%E8%AA%8CTechCrunch%E3%81%8CWordPress%E7%94%A8%E9%9D%9E%E5%90%8C%E6%9C%9F%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AAAsync%20Task%E3%82%92%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96

本誌TechCrunchがWordPress用非同期タスクライブラリAsync Taskをオープンソース化

[筆者: Nicolas Vincent, Alex Khadiwala]

2012年に本誌TechCrunchのデベロッパチーム(Nicolas Vincent, Alex Khadiwala, Eric Mann, John Bloch)が、TechCrunchのデザイン変更に取り組んだとき、主な目標のひとつがパフォーマンスの向上だった。その目標を達成するためにわれわれは、開発の一環としていくつかのツールを作った。

われわれが取ったアプローチの一つは、時間を消費するタスクをバックグラウンドのタスクにしてしまうことだった。WordPress(本誌の基幹エンジン)上でバックグラウンドタスクを構成するためのライブラリとして、WP Async Task(WordPress非同期タスク)というものを作った。

今年の6月に”Non-Blocking WordPress“(ノンブロッキングWordPress)と題するプレゼンテーションを行う機会があり、その中でわれわれは、パフォーマンスに対するわれわれのアプローチについて語った。そのときのオーディエンスは、われわれが実装した非同期タスクに大きな関心を示し、コードを入手して自分たちでも使いたい、と言われた。

そこで、本日(米国時間7/31)をもってわれわれは、WP Async TaskライブラリをオープンソースとしてGitHubから提供することにした。われわれは、オープンソースソフトウェアがもたらすパワーの熱烈な信者であり、われわれにこのパブリシングプラットホーム(WordPress)を提供したコミュニティに、お返しをしたいと思う。コードとドキュメンテーションをご覧頂いて、ご自分のコードにおけるこのライブラリの使い方を、ご理解頂きたい。

なぜタスクを非同期にするのか?

ページのロードがブロックされたり、ロードに長時間かかるのを防ぐためには、CPUを競合するプロセスの数を減らしたい。ページロードの長時間のブロックは、ほかのプロセスが、リソースが空く(自分の順番が回ってくる)ことや、何かの操作が終了することを待っているときに、よく起きる。

TechCrunchのサイトでは、企業や人物のデータベースCrunchBaseのカードを、今読まれている記事ページの上にロードするときに、サイトのスピードが鈍化する。そのときはプロセスがCrunchBaseのAPIを呼び出してカードを作ろうとしているからだ。パフォーマンスを上げるためにそれらのデータを約12時間キャッシュしているが、最初にデータを取り出すときや、キャッシュをリフレッシュするときには、そのためのAPI呼び出しがページロード時間に影響を与えないようにしたい。

そこでCrunchBaseからキャッシュにデータを取り出すときには、APIの呼び出しと実行が終了するのを待つのではなく、その処理を非同期のバックグラウンドタスクとして起動する。すでにキャッシュにデータがあるときには、カードでそれを使う。このようにすると、CrunchBaseのカードの表示がページのロードを邪魔しない。

TC redesign wp async improvements

TechCrunchの以前のデザインでは、ページのロードタイムが1ページにつき17秒以上かかることもあった。新しいデザインでは、WP Async Taskライブラリの実装により全体的なパフォーマンスは5倍から8倍は向上した。それには、バックエンドとフロントエンドの両方に対する、そのほかの改良も、大いに貢献している。

下のビデオは、2014年6月にサンフランシスコで行われたBig Media & Enterprise MeetupでプレゼンをやっているNicolasとAlexだ。10upのデベロッパ、John BlochとEric Mannにも感謝申し上げたい。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

広告

blog comments powered by Disqus

コメント

shigtak
GOPRO株主としては、ぜひ成功してほしい、続報を期待しています。
神崎渉瑠
7インチタブレットは多くの紙製手帳と同じ幅ということもあり使いやすいと思うが、ベゼルが大きいから非…
アサギマダラ
へえ、これは良いなぁ。これに続いて公共無線がもっと普及してくれればさらに……だけど
abology
كشف تسربات المياه نقل اثاث بالرياض تخزين اثاث…
Steve Jobs
ocnモバイルoneのsimカードlg g3で使えますか?
フォロー

新しい投稿をメールで受信しましょう。

Join 141 other followers