際際滷
Submit Search
堰温界一の粥壊霞稼界遺顎姻鉛で棒んだ三
?
0 likes
?
372 views
K
Kenjiro Kubota
Follow
PHPerKaigi#2018 LT
Read less
Read more
1 of 23
Download now
Download to read offline
More Related Content
堰温界一の粥壊霞稼界遺顎姻鉛で棒んだ三
1.
堰温界一の粥壊霞稼界遺顎姻鉛で棒んだ三 2017/10/08 PHPerKaigi LT@KenjiroKubota
2.
Pro le Kenjiro Kubota istyle.inc PHPers膨定の弌僥伏です 挫きなFWはLaravelとZend-Expressive
3.
堰温界一はもちろん岑ってますよね
4.
HHVM/Hack HipHop Virtual Machineは、JIT圭塀でPHP式びHackといったプログラ ミング冱Zごg佩する∀覘h廠。 HHVMでg佩されるコ`ドはJITコンパイルの^殻でまず嶄圷のの HHBCにQされ、啜弔x64のC亠Zへとコンパイル?恷m晒を佩っ た貧でg佩される。 HHVMはFacebook芙が_kしておりGithub貧でPHP
License、Zend Licenseのもと巷_されている。(Wikipedia) F佩のLTSである3.24を恷瘁にPHP5への札Qが恷瘁となり、書瘁は Hackのみがg佩鵑箸覆襪海箸苧らかにされている。
5.
アイスタイルでは堰堰閣珂/堰温界一を駻辰靴泙靴
6.
リリ`ス念のサ`ビステストで HHVMが棒にまくる並宛がk伏
7.
是ったこと HHVMが竃薦するerror.logが畠く歌深にならない 峺協されたスタックトレ`スログもCore Dump Abortしか竃てない 蒙協のリクエスト、レスポンスrでのクラッシュではない ググったら仝HHVMはたまに鯛ちるから棒試Oで壅軟咫垢箸恷 な盾Q圭隈しかB初されてない
8.
おお HHVM,靴鵑任靴泙Δ箸 なにごとだ
9.
ところでこのHack、K双I尖ができるんです Hackはasyncv方を聞うことでf{議マルチタスキングを旋喘すること ができます。 I/Oやデ`タの函誼I尖のレイテンシgに麿のI尖を佩うといった碧M み。
10.
HHAsiocurl_exec https://docs.hhvm.com/hack/reference/function/HH.Asio.curl_exec/
11.
<?hh namespace HackUserDocumentationAPIExamplesce; require __DIR__
. "/../../vendor/autoload.php"; async function get_curl_content(Set<string> $urls): Awaitable<Vector<string>> { $content = Vector {}; foreach ($urls as $url) { $str = await HHAsiocurl_exec($url); $content[] = substr($str, 0, 10); } return $content; } function run(): void { $urls = Set {'http://www.google.com', 'http://www.cnn.com'}; $content = HHAsiojoin(get_curl_content($urls)); var_dump($content); } run();
12.
}でいてあるけど、 これがHHVM篷世淋咀でした
13.
どうなっていたのか HHAsiocurl_exec が坪何で旋喘している curl_multi_await
という HHVM(C++)v方でレスポンスがWいエンドポイントがある栽に Abortするバグがあった。 PHPのリクエスト、レスポンスのI尖とは`い、HHVMではレスポン スを卦した瘁もこのv方がg佩されAけてしばらくすると鯛ちる咾 なっていた このため、どのタイミングでHHVMがクラッシュするのかの委燐がW れた???
14.
どうしたか
15.
BめてK双じゃない curl_exec を聞いました
16.
THE END
17.
倩ですKわりません。 匯稀この彜Bでファ`ストリリ`スをしました。
18.
もちろんこの嶇鵑呂垢任望渦壊顎艶で烏御されてました
19.
1/5に俐屎される c++でg廾していた curl_multi_await をhackg廾に筝
20.
1/5に俐屎される c++でg廾していた curl_multi_await をhackg廾に筝 async
function curl_multi_await( resource $mh, float $timeout = 1.0, ): Awaitable<int> { $finish_by = microtime(true) + $timeout; do { $result = curl_multi_select($mh, 0.0); if ($result !== 0) { return $result; } await HHAsiolater(); } while (microtime(true) < $finish_by); return 0; }
21.
だたし、F壓リリ`スされているHHVM ver3.24.3にはまだこの 筝は函りzまれていませんでした。 (☆3.25のブランチでは俐屎鬉秘ってます) この}にIgみのHack喘Curlライブラリ恬ってあるので崔いてお きます。 https://github.com/kubotak-is/hhcurl この俐屎を根めて壅業リリ`ス
22.
` その瘁 F壓ではHHVMはクラッシュすることなく圷櫃遍砲牌澆蟷悗辰討い す。(屈ヶ埖殻業) ブログでHHVMがよく鯛ちるといてる繁、 HHAsiocurl_exec
が聞われ ていないかご_Jを 弼?ありましたが、HHVM/HackはPHPの晒井議な湖じでもう富し侏 を鯉にしたい、K双をSにきたいといういを匐えてくれる措い冱 Zだと房います。 Try
23.
thanks:)
Download