Github を使用しているときに、次のプロンプトを見たことがありますか?
このプロンプトは、リモート コード リポジトリにクローン化する必要があるオブジェクトが合計 4350078 個あることを示しています。 これは「オブジェクトのカウント」と呼ばれます。Github は、クローン化する必要があるオブジェクトの総数をリアルタイムで計算する必要があります。 このプロセスは非常に遅いです。Github によると、Linux カーネルのような巨大なライブラリをインベントリするには 8 分かかります。つまり、 その後、ついに新しいアルゴリズムが発見され、今では 1 回のカウントに 3 ミリ秒しかかかりません。 このアルゴリズムを理解するには、まず Git オブジェクトが何であるかを知っておく必要があります。簡単に言えば、オブジェクトはファイルであり、最も重要なオブジェクトの種類は 3 つあります。
コードを送信するたびに、対応する現在の「ディレクトリ オブジェクト」の名前を含むコミット オブジェクトが生成されます。 「ディレクトリ オブジェクト」には、コード ルート ディレクトリに含まれるサブディレクトリとファイル情報が格納されます。各サブディレクトリは別の「ディレクトリ オブジェクト」であり、各ファイルは特定のファイル コンテンツを含む「ファイル オブジェクト」です。 したがって、「オブジェクトをカウントする」とは、さまざまなコミット、ディレクトリ、ファイルなどをカウントすることを意味します。 オブジェクトをカウントするための元のアルゴリズムは次のとおりです。
上記のプロセスは、「オブジェクト カウント」がファイル トラバーサル アルゴリズムであることを示しています。変更されたオブジェクトは 1 つずつカウントされるため、ファイル読み取り操作の回数が多くなります。大規模なコードベースでは、このプロセスは非常に遅くなります。 Github チームが考案した新しいアルゴリズムは、ビットマップ インデックスを作成すること、つまりコミットごとにバイナリ値を生成することです。 ローカル Github リポジトリの 各コミットには、現在のスナップショットに含まれるすべてのオブジェクトを表す対応するバイナリ値があります。これらのオブジェクトの対応するバイナリ ビットはすべて 1 で、他のバイナリ ビットはすべて 0 です。 これを実行する利点は、コミット オブジェクトを読み取る必要がないことです。現在のコミットに含まれるノードを知るには、バイナリ値を読み取るだけで済みます。さらに良いことに、2 つのバイナリ値に対して XOR 演算を実行するだけで、どのビット (つまりどのオブジェクト) が変更されたかがわかります。さらに、新しいオブジェクトは常に既存のバイナリ ビットの末尾に追加されるため、現在のコミットに前のコミットよりも多くのオブジェクトが含まれているかどうかを確認するには、追加ビットを読み取るだけで済みます。 このように、「オブジェクトのカウント」はバイナリ値の比較操作となるため、速度が非常に速くなります。詳しい説明については、公式ドキュメント「ビットマップの説明」および「ビットマップのフォーマット」を参照してください。 現在、このアルゴリズムは Github の実稼働環境に導入されており、ユーザーはオブジェクトのカウントを待つ必要がなくなりました。さらに、Github チームはこれを Git に統合しました。つまり、今後はすべての Git 実装で Bitmap 関数を使用できるようになり、将来的にはより興味深い使用法が確実に生まれるでしょう。 |
<<: 人工知能アルゴリズムを採用したGoogle検索は恐ろしい
電子データ交換 (EDI) の歴史は、企業がより効率的に電子的にデータを交換する方法を模索し始めた ...
機械学習モデルのトレーニングは通常、一連の入力機能と出力ターゲット間のマッピングを学習することによっ...
夏が進むにつれて気温もどんどん高くなっていきます。最近クウェートの気温は50℃~70℃に達したと報じ...
先週、欧州の議員らは画期的な人工知能規制であるEU AI法案を圧倒的多数で賛成票を投じた。この法案は...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
オープンソースの AI ディープラーニングを適用して、顔の表情の特徴に基づいて画像のキャプションを生...
最近、マッキンゼー・グローバル研究所は水曜日に発表した報告書の中で、技術の進歩により、将来世界で約3...
そうです、グラフィックカードを作っている会社、NVIDIA です。 NV はグラフィック カード メ...
近年、データサイエンスとデータマイニングの人気が高まっています。ニューラルネットワークとディープラー...
ボストン・ダイナミクスが「バンドで演奏」します!今回のターゲットは有名な「ローリング・ストーンズ」。...
ほとんどの人が協働型群ロボットを想像するとき、通常は捜索救助活動などの用途を思い浮かべます。しかし、...
AI アプリケーション開発プロセスを詳しく調べ始める場合、まずこれらのプロジェクトが通常のアプリケー...
新たなスタープロジェクトが誕生! AI 開発者コンパニオンである GPT Pilot を使用すると、...
[[342758]]人工知能教育は最も美しい新しいインフラです人工知能のアルゴリズムの中にはデータ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...