Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。コンパイルの詳細が含まれている。スレッドは応答し続けることで、パフォーマンスを向上させることができる。Guo氏によるとV8のコンパイルには2種類あるという:全体のコンパイル時間を短くするために、V8はJavaScriptのコンパイルを最初に実行される直前まで延期する。フェーズは高速だが、コードの最適化には焦点を当てておらず、すぐに完了する。[Crankshaft]によって、非常に頻繁に二度目のコンパイルが実行される。パスは、多くの高度な最適化技術を使用しているため、最初のパスよりも時間がかかるが、非常に高速なコードを生成する。5で27%高速化したとGuo氏は言う。33で(--js-flags="--concurrent-recompilation")と、非同期再コンパイルなし(--js-flags="--no-concurrent-recompilation")でテストを実施した。(全17テスト)7.12%Mandreel18%Box2DWeb32%zlib11%大きな改善は2Dや3Dの物理エンジンで見られ、Octaneスイート全体のベンチマークで7%の改善が見られた。私たちは、最適化コンパイラーがなぜCrankshaftがリリースされた2010年12月に導入されなかったのかをGuo氏に尋ねた。彼がGoogleのために話しているわけではなく、また彼はその時点ではチームにいなかったが、Guo氏は改善は実際の必要性に基づいて実施されていると述べた:Crankshaftが設計された時点では、レイテンシーに大きな問題はありませんでした。JavaScriptコードはまだ、コンパイル時間が顕著になるサイズには至っていなかったため、低レイテンシーは問題でも、Crankshaftの設計目標でもありませんでした。私の考えでは、その時点で並列処理を導入することは、時期尚早であり、すぐにメリットがなく、駆け出しの最適化コンパイラーの設計を必要以上に複雑にすることになっていたでしょう。ここ数年でこの状況は明らかに変化しました。最新版のOctaneベンチマークスイートを見ると、いくつかのサイズは1MB以上になっていることがわかります。これは、JavaScriptエンジンを限界まで使っている実世界を反映しています。Mandreelベンチマークは、最小化された4.8MBのコードで構成されています。1.0のソースコードを展開すると4.4MBです。このコード量を処理すると時間がかかってしまい、特に問題となるケースとしては、アニメーションのレンダリングをした時には一瞬で完了することが期待されています。サイエンティストが言うように、マルチスレッドはとても難しいです。テストを網羅するのは難しいです。特定の動作に起因するバグを再現するのは、難しいかもしくは不可能です。アサーションによる不変値のガード、ファズテスト、そして最後にCanaryテストカバレッジによって、それが正しいという自信を持つことができました。ThreadSanitizerチームに拍手を送りたい。実行を停止したコンパイルにおいては、コンパイルの前後で、そのすべてのオブジェクトを含む、JavaScriptヒープの状態が同じことを確認する。並列コンパイルでは、すでにこの前提は成立しない。V8は、GCをキックするたびにオブジェクトが移動されるため、参照を更新する必要がある。ジョブの実行中に頻繁に発生する可能性がある。アクセスになってしまう。実行中も並列コンパイルが継続している。これは、VMの状態とオブジェクトの中身、レイアウトが自由に変更できることを意味している。ジョブの開始時の事実に基づく仮定は、終了時には意味がなくなっている可能性もある。最後に生成されたコードであっても有効ではない可能性もある。それを実行してしまうと、バグやクラッシュが発生する。これは正しく取り扱う必要がある。スレッドはいつでもヒープにアクセスするため、競合状態になる可能性が非常に高い。ジョブの前に必要な情報をすべて集めることでこれを避けている。コードを最適化するために時間をかける価値があるかどうか、簡単にメリットを得ることができるかどうかを予見することはできない。それをケアするためにヒューリスティックな解決策を探すことはより困難である。多くの微調整が必要であったが、作業はまだ継続中である。遅延解析のような相互接続状態を通じたソースコードのライフサイクルは、高速コンパイラーを使った初回コンパイルの後、最適化コンパイラーで最適し、(コンパイル時に後から停止すると仮定した場合)おそらく非最適化する、などすでに複雑である。並列コンパイルでは、2つの新しい状態がこのライフサイクルに追加された。これらすべてを追跡し続け、バグがなく、効率的であることを保証することは重要である。予想外の特殊なケースでは問題が発生することがある。Guo氏によると“V8はアクティブに開発されており、着実に改善されています”。チャートでは、2月のDeltaBlueベンチマークにおいてV8は、30%向上していることがわかる。コンパイルに関連する訳ではない。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員��して、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。