Facebookが主催する@Scale conferenceというカンファレンスが少し前にやってまして、そのビデオがYouTubeで公開されてます。Data、Mobile、Webというみっつのトラックがあって、それぞれプレイリストになってます。とりあえずWeb trackをざっと眺めたなかで個人的に面白いとおもったものを。
Asynchronous Programming at Netflix
非同期プログラミング、というタイトルでRxJS (Reactive Extension for JavaScript)の解説。語り口も明確だし、これは面白かった。イベントソースを非同期なコレクションとみなして、forEachやmapなどを駆使すると綺麗に書けますよ、Netflixではもう使ってます、というもの。
もともとReactive ExtensionはMS発祥のテクノロジーで、C#などではLINQとうまく統合しているみたいなんだけど、JSの場合は関数をチェインさせる。スピーカーはMSからNetflixに移った人らしい。チュートリアルもわかりやすく(前半はふつうの関数プログラミングのはなしなのでだるいが)、なかなか興味深い内容だった。
JavaScript Testing and Static Type Systems at Scale
前半はJSのモジュールの話とテストの話。あんまり真面目に聴いてないけど、ものすごい目新しい話ではなかったと思う。が、後半のFlowっていう型チェッカはちょっと面白かった。
JSに型チェックを入れるってのは、いくつか実例はあって、Closure Compilerとか、TypeScriptとか。ただ、Flowの型チェックがすごいのは、構文解析をしてJSコードの型チェックを理解して的確に間違いを検出する。プレゼンの例だと、
Asynchronous Programming at Netflix
非同期プログラミング、というタイトルでRxJS (Reactive Extension for JavaScript)の解説。語り口も明確だし、これは面白かった。イベントソースを非同期なコレクションとみなして、forEachやmapなどを駆使すると綺麗に書けますよ、Netflixではもう使ってます、というもの。
もともとReactive ExtensionはMS発祥のテクノロジーで、C#などではLINQとうまく統合しているみたいなんだけど、JSの場合は関数をチェインさせる。スピーカーはMSからNetflixに移った人らしい。チュートリアルもわかりやすく(前半はふつうの関数プログラミングのはなしなのでだるいが)、なかなか興味深い内容だった。
JavaScript Testing and Static Type Systems at Scale
前半はJSのモジュールの話とテストの話。あんまり真面目に聴いてないけど、ものすごい目新しい話ではなかったと思う。が、後半のFlowっていう型チェッカはちょっと面白かった。
JSに型チェックを入れるってのは、いくつか実例はあって、Closure Compilerとか、TypeScriptとか。ただ、Flowの型チェックがすごいのは、構文解析をしてJSコードの型チェックを理解して的確に間違いを検出する。プレゼンの例だと、
function size(input) {とか、
if (input != null) {
return input.length;
} return 0;
}
function size(input: string | Array<string>): number {
if (typeof input == "string") {
return input.length;
} else {
for (var i = 0, sum = 0; i < input.length; i++) {
sum += input[i].length;
}
return sum;
}
}
Migrating Wikipedia to HHVM
HHVMはFacebookがリリースしたPHPとHackっていう新言語用のVMで、WikipediaのPHPをHHVMに移行してパフォーマンスを改善させたっていう話。これは正直、HHVMがどんなもんで、どういう特性があって、みたいな技術的な側面を期待してたら、そのへんはあんまり言及がなくて肩透かし。ふつうにHHVMにしたら速くなりました、という感じ。
ただ興味深かったのは、なぜWikipediaがPHPのパフォーマンスを気にしないといけないか、ってこと。WikipediaはVarnishをつかってキャッシュをしていて、静的ページはかなりキャッシュにヒットする。PHPでなにをどうしようが、95%のリクエストには全く何の影響もない。ではなぜ、PHPのことを気にする必要があるのか?
PHPが影響するのは、キャッシュがきかない部分だ。たとえばページ編集時のプレビューはキャッシュできないから、PHPでパーズするしかないが、非常に多岐にわたる複雑な拡張機能のためにパーズはめちゃくちゃ遅くなるらしい。バラク・オバマの(英語の)ページで実験してたけど、旧来の普通のVMだとページ生成に20秒ぐらいかかるという。HHVMにしてみたらなんと6秒! いやそれでも遅いと思うけどね……。
また、Wikipediaではログインユーザのほうが平均的に遅くなる傾向があるという。
ようするに、Wikipediaに対する貢献度が高い、いわばプライオリティユーザーにむしろペナルティを与えてしまっている現状なのだ、と言う。だから、割合としては少なくても、きちんと気にしないといけないのだ、ということだそうです。
いじょ。mobileとdataのトラックも、まあヒマがあったら見てみます。
No comments:
Post a Comment