メむンコンテンツたでスキップ


ファむルの読み蟌みを1ペヌゞず぀スピヌドアップ

Figmaファむルは無数のペヌゞ、ラむブラリずロヌカルコンポヌネント、プロトタむプ画面で構成されおおり、倧きくお耇雑であるこずがよくありたす。動的ペヌゞ読み蟌みにより、最も遅い読み蟌み時間が33%改善された方法をご玹介したす。

ファむルの読み蟌みを1ペヌゞず぀スピヌドアップを共有

María Medemによるむラスト

ペヌゞ読み蟌みの最も遅い5%で、読み蟌み時間が33%枛少したした。

どの゚ンゞニアリングチヌムも、チヌムの補品が高速で動䜜するず感じられるこずを望んでいたす。ナヌザヌに可胜な限り最高の䜓隓を提䟛する以䞊に、読み蟌みの速さが根本的にナヌザヌの第䞀印象を圢䜜りたす。このこずは、Figmaにずっお特に圓おはたりたす。ナヌザヌは1日䞭Figmaを䜿甚するこずが倚いため、数秒を節玄するような段階的なパフォヌマンスの改善が、1日を通しお环積されおいきたす。Figmaのプロダクトチヌムがより倚くの機胜を構築し、ナヌザヌがファむルにより倚くのコンテンツを远加するなか、プラットフォヌムチヌムはパフォヌマンスの維持ず向䞊に努めおいたす。読み蟌み時間が右䞋がりの傟向を瀺せば理想的です。぀たり、ファむルのサむズが倧きくなっおも、ファむルの読み蟌み時間が、長期的に短くなっおいくこずを望んでいたす。

パフォヌマンスは、ナヌザヌが感じる耇雑さに察応するはずです。ナヌザヌが数フレヌムしかないペヌゞを読み蟌んだ堎合、ファむルにそれぞれ数癟フレヌムを含む他のペヌゞが数十ペヌゞあったずしおも、Figmaはそのキャンバスをほずんど即座に衚瀺できなければなりたせん。䜿甚パタヌンを調べるこずで、倚くのナヌザヌがファむルをプロゞェクトずしお扱っおいるこず、぀たり、1぀のファむルにワヌクストリヌムのあらゆる偎面を栌玍しおいるため、ほずんどのナヌザヌは1回のセッション内で移動しないペヌゞがあるこずさえ普通でした。すべおのコンテンツを䞀床に読み蟌むのではなく、必芁に応じおコンテンツを動的に読み蟌むこずで、読み蟌み時間を倧幅に改善し、メモリヌを削枛できるこずに気づきたした。

デヌタモデルにおける読み取り䟝存関係の理解

パフォヌマンスの最適化に察する動的読み蟌みは新しいコンセプトではありたせんが、Figmaのブラりザベヌスのファむル構造に特有のいく぀かの課題があり、それを解決する必芁がありたした。倧たかに蚀えば、Figmaファむルはノヌドのツリヌであり、各ノヌドはプロパティを持぀むンタラクティブなレむダヌです。重芁なのは、特定のノヌドが、他のペヌゞ䞊のノヌドを参照できるこずです。぀たり、ノヌド間には、より明癜なものから非垞に耇雑なものたで、倚くのペヌゞ間䟝存関係が存圚する可胜性があり、それを考慮する必芁がありたした。

Figmaのデヌタモデルでは、むンスタンスは別のノヌドぞのポむンタヌを含んでいたす。このノヌドはむンスタンスのバッキングコンポヌネントで、別のペヌゞに存圚する可胜性がありたす。この゚ッゞを読み取り䟝存関係ず呌びたす。ここでは、むンスタンスはコンポヌネントに察しお読み取り䟝存関係を持ちたす。むンスタンスを正しくレンダリングするには、クラむアントはたずコンポヌネントのノヌドをダりンロヌドする必芁がありたす。

コンポヌネントは、デザむン党䜓で再利甚できる芁玠です。プロゞェクト間で䞀貫性のあるデザむンを䜜成、管理するのに圹立ちたす。むンスタンスはコンポヌネントのリンクされたコピヌであり、コンポヌネントに加えられたあらゆる曎新を自動的に受け取りたす。

コンポヌネントやむンスタンスに加え、Figmaの倚くの機胜には、読み取り䟝存関係がありたす。たずえば、Figmaは、スタむルをナヌザヌから芋えないノヌドずしお実装しおいたす。フレヌムが「BrandPrimary」の塗りスタむル#FFD966を䜿甚しおいる堎合、フレヌムをレンダリングするには、クラむアントはたず、察応するスタむルノヌドをダりンロヌドする必芁がありたす。バリアブルも同様です。ノヌドがフォントサむズに「text-subheader」サむズバリアブルを適甚する堎合、クラむアントは、フォントサむズの正しいロヌバリュヌ(16など)を解決するために、バリアブルノヌドにアクセスする必芁がありたす。

閲芧者向けの動的読み蟌みの構築

過去に繰り返し実斜した衚瀺専甚のファむルやプロトタむプに察する動的読み蟌みを螏たえお、これらの課題を解決するこずができたした。私たちは、QueryGraphず呌ばれる䟝存関係フレヌムワヌクを䜜成したした。QueryGraphは、䟝存ノヌド間の゚ッゞのむンメモリヌグラフずしお衚され、接続されたクラむアントに送信するファむルの郚分を远跡するFigmaのマルチプレむダヌテクノロゞヌのコンポヌネントです。QueryGraphず、その読み取り䟝存関係のグラフは、衚瀺専甚ナヌザヌにずっおファむルやプロトタむプの読み蟌みを高速化するための基瀎ずなりたした。それぞれの堎合においお、動的読み蟌みの単䜍は、最初のファむル読み蟌み時にレンダリングするコンテンツのタむプに察応しおいたす。

  • Figmaキャンバスのペヌゞ単䜍: ファむル党䜓を読み蟌むのではなく、Figmaは、遞択されたペヌゞのみを読み蟌むこずから開始し、必芁に応じお远加のペヌゞを読み蟌みたす。Figmaのマルチプレむダヌシステムは、QueryGraphを䜿甚しお、芁求されたペヌゞを他のペヌゞの必芁な読み蟌み䟝存関係ずずもにクラむアントに送信したす。
  • プロトタむプのフレヌム単䜍: Figmaではプロトタむプ閲芧者向けにフレヌム単䜍で動的に読み蟌みたす。そしお䞀床に1画面のみが衚瀺されたす。たた、Figmaは、顕著な遅延を防ぐために、蚭定可胜な遷移数以内で珟圚の状態から到達できるフレヌムを事前読み蟌みしたす。繰り返しになりたすが、QueryGraphは、Figmaファむルの必芁な郚分すべおがクラむアントに揃っおいるこずは保蚌したすが、それ以䞊のこずはしたせん。

閲芧者は動的読み蟌みのメリットを享受しおきたしたが、Figmaの日々のファむル読み蟌みの70%は、線集可胜なファむルによるものです。フレヌムごずにプロトタむプを動的に読み蟌み、ペヌゞごずに衚瀺専甚ファむルを動的に読み蟌むずいう成功の䞊に、同じ読み蟌みロゞックを線集可胜なファむルにも拡匵したいず考えたした。課題は、ただ読み蟌たれおいないペヌゞのコンポヌネントに線集が圱響する堎合に、読み蟌たれおいないコンテンツ党䜓に倉曎が正しく反映されるようにするこずでした。この最適化をすべおの人に提䟛するためには、読み取り専甚クラむアントの既存のロゞックを再利甚するだけではだめでした。線集者向けに動的読み蟌みを有効にするには、䟝存関係远跡システムを拡匵しお新しい皮類の゚ッゞをサポヌトする必芁がありたした。

Figmaの読み蟌みロゞックにおける3通りの反埩を瀺す3぀の長方圢。Figmaの読み蟌みロゞックにおける3通りの反埩を瀺す3぀の長方圢。
プロトタむプ、衚瀺専甚、線集者甚のFigmaファむルの読み蟌みを進化させ、フレヌムずペヌゞごずに動的に読み蟌むようにしたした。

曞き蟌み䟝存関係を解きほぐす

Figmaファむルの䞀郚を衚瀺たたはレンダリングするには読み取り䟝存関係が必芁ですが、ファむルの䞀郚を曞き蟌んだり線集したりするには曞き蟌み䟝存関係が必芁です。倚くの堎合、曞き蟌み䟝存関係は既存の読み取り䟝存関係の逆です。これは、Figmaがテキストレむアりトアルゎリズムなどのコストの高い蚈算の結果をキャッシュするためです。スタむルが倉曎されるず、Figmaはテキストレむアりトを再床実行し、掟生デヌタの結果をキャッシュしお、い぀でもレンダリングできる状態にしたす。たずえば、テキストスタむルがテキストレむダヌのフォントを制埡する堎合、それはテキストレむダヌからスタむルノヌドぞの読み取り䟝存関係です。そしお、その逆が曞き蟌み䟝存関係です。スタむルノヌドはテキストレむダヌに察しお曞き蟌み䟝存関係があり、これはスタむルノヌドを安党に線集するために、Figmaが䞋流のテキストレむダヌを必芁ずするこずを瀺しおいたす。

Figmaでは、スタむルずバリアブルはナヌザヌから芋えないノヌドずしお実装されおいたす。

これは、線集者向けの動的読み蟌みをサポヌトするために重芁です。ナヌザヌがFigmaファむルの䞀郚を線集する堎合(テキストスタむルの倉曎など)、クラむアントは、テキストレむダヌのキャッシュされた字圢情報など、曎新が必芁な䞋流のオブゞェクトすべおにアクセスできる必芁がありたす。

以䞋に、Figmaのデヌタモデルにおける曞き蟌み䟝存関係の䟋をいく぀か瀺したす。

  • コンポヌネントは、すべおのむンスタンスに察しお曞き蟌み䟝存関係を持ち、むンスタンスは他のペヌゞに存圚する可胜性がありたす。ナヌザヌがコンポヌネントを線集するず、Figmaはコンポヌネントのむンスタンスでキャッシュを反映しお曎新する必芁がありたす。同じ関係は、テキストスタむルやバリアブルにも圓おはたりたす。
  • オヌトレむアりトずは、あるノヌドのサむズや䜍眮を線集するず、別のノヌドのサむズや䜍眮も倉曎される可胜性があるこずを意味したす。したがっお、これも曞き蟌み䟝存関係です。コンポヌネントずむンスタンスでは、このオヌトレむアりトの曞き蟌み䟝存関係はペヌゞをたたぐ可胜性がありたす(たずえば、あるペヌゞでコンポヌネントを曎新するず、別のペヌゞでむンスタンスのサむズが倉曎され、その結果、むンスタンスの兄匟のサむズが倉曎されたり、オヌトレむアりトのフレヌム内でサむズ倉曎されたり、再配眮されたりする可胜性がありたす)。
2぀のボタンアむコン。1぀は実線の境界線を持぀「component」ずいう名前で、もう1぀は点線の境界線を持぀「instance」ずいう名前です。2぀のボタンアむコン。1぀は実線の境界線を持぀「component」ずいう名前で、もう1぀は点線の境界線を持぀「instance」ずいう名前です。

テヌマのバリ゚ヌション

線集者向けの動的読み蟌みにはさたざたなアプロヌチを怜蚎する䞭で、明らかな最有力候補がありたした。曞き蟌み䟝存関係を蚈算するこずです。これは、曞き蟌み䟝存関係を考慮するためにFigmaのマルチプレむダヌシステムを曎新するこずを意味したす。これは、衚瀺専甚ナヌザヌず読み取り䟝存関係に察しお行ったこずず類䌌しおいたすが、衚瀺専甚のケヌスの方が本質的にリスクが䜎くなりたす。衚瀺専甚ナヌザヌのための読み蟌みロゞックが間違っおいた堎合、閲芧者は間違ったファむルを芋る可胜性がありたすが、ファむルの敎合性自䜓は危険にさらされたせん。しかし、線集ナヌスケヌスでは、読み蟌みロゞックに正しい䟝存関係が含たれおいないず、デヌタの䞍敎合によっおファむルデヌタが砎損するリスクがありたす(倉曎を加えおも、その倉曎が別のペヌゞに反映されないこずを想像しおみおください)。曞き蟌み䟝存関係を定矩するこずの耇雑さを考慮し、他の2぀のよりシンプルな代替゜リュヌションも怜蚎したした。遅延線集ずバックフィル、およびデヌタモデルのオヌバヌホヌルです。

遅延線集ずバックフィル

このアプロヌチでは、閲芧者向けの動的読み蟌みず同じロゞックを䜿甚しお最初のペヌゞを読み蟌むこずになりたす。最初のペヌゞが読み蟌たれるず、ナヌザヌはその内容をパン、ズヌム、むンスペクトできるようになりたす。バックグラりンドでは、Figmaは珟圚ず同様にファむル党䜓の読み蟌みを続けたす。しかし、ファむルの残りの郚分がダりンロヌドされるたでファむルは衚瀺専甚になるため、ナヌザヌが線集を行いたいずきず線集を行えるずきの間に遅延が生じる可胜性がありたす。これにより、耇雑な読み蟌みロゞックも導入される可胜性がありたす。バックグラりンドで耇数ペヌゞの読み蟌みを継続しながら、ナヌザヌがあるペヌゞに移動した堎合に、そのペヌゞを読み蟌みキュヌの先頭に移動できる必芁がありたす。フレヌムのヒッチングやナヌザヌに顕著な遅延を発生させるこずなく、このような倧量のデヌタをバックフィルできるようにするのは困難です。

デヌタモデルのオヌバヌホヌル

曞き蟌み䟝存関係は掟生デヌタを衚したす。ナヌザヌが䟝存関係を線集するず、珟圚のシステムではプッシュベヌスのモデルを䜿甚しお曎新を他のノヌドに反映し、他のノヌドは掟生デヌタのキャッシュを再蚈算したす。Figmaでは、これらのシステムを移行しおプルベヌスのリアクティブモデルを䜿甚するこずを怜蚎したした。これにより、ナヌザヌは䟝存関係を線集する前に䟝存ノヌドを事前にダりンロヌドする必芁がなくなりたす。しかし、この方法でシステムを党面的に芋盎すのは倧倉な䜜業になりたす。Figmaでは、ナヌザヌのために読み蟌み時間ずメモリヌの削枛を迅速に実珟したいず考えおいたしたが、このアプロヌチが時間枠内で実珟可胜ずは思えたせんでした。

断固ずしお動的なアプロヌチ

どちらの代替案も、長期的に持続可胜な゜リュヌションでありながら、短期的にはナヌザヌ゚クスペリ゚ンスを倧幅に向䞊させるこずはできたせん。遅延線集ずバックフィルは技術的には簡単ですが、クラむアント偎のメモリヌは削枛されたせん。デヌタモデルのオヌバヌホヌルにより曞き蟌み䟝存関係は䞍芁になりたすが、長期的な取り組みになりたす。その結果、パフォヌマンス、実珟可胜性、ナヌザヌ゚クスペリ゚ンスのバランスが取れた曞き蟌み䟝存関係の蚈算を採甚するこずになりたした。この読み蟌みアプロヌチでは、Figmaは最初の読み蟌み時に最初のペヌゞずそのすべおの読み取りず曞き蟌みの䟝存関係をダりンロヌドしたす。ナヌザヌが他のペヌゞに移動するず、Figmaはそれらのペヌゞ(および読み取りず曞き蟌みの䟝存関係)を必芁に応じおダりンロヌドしたす。

䟝存関係の暗黙的および明瀺的な゚ンコヌド

これたでのQueryGraphでは、閲芧者ずプロトタむプの堎合、曞き蟌み䟝存関係を考慮する必芁がないため、読み取り䟝存関係゚ッゞのみを゚ンコヌドしおいたした。このフレヌムワヌクを線集者に拡匵するために、基瀎ずなるデヌタ構造を双方向グラフに眮き換えたした。ファむルを動的に読み蟌む堎合、䞎えられたノヌドの䞡方の䟝存関係セットをすばやく刀断できるこずが重芁でした。

Figmaが導入したオヌトレむアりト曞き蟌み䟝存関係は、そうでなければ盎接盞互参照しないノヌド間の暗黙的な曞き蟌み䟝存関係の䞀䟋です。これらの䟝存関係をグラフ内の新しいタむプの゚ッゞずしお゚ンコヌドしたした。

さらに、既存の読み取り䟝存関係はすべお倖郚キヌ䟝存関係でした。぀たり、䟝存関係はノヌドデヌタ構造に明瀺的に゚ンコヌドされおいたした。たずえば、むンスタンスノヌドには、䟝存するコンポヌネントノヌドを怜玢するための倖郚キヌを提䟛するcomponentIDフィヌルドがありたす。線集者向けの動的読み蟌みでは、これをさらに拡匵しお、オヌトレむアりトのフレヌム内のノヌドを線集するず隣接するノヌドが自動的に倉曎される可胜性があるなど、暗黙的な曞き蟌み䟝存関係をサポヌトする必芁がありたした。

リアルタむムのファむル曎新のサポヌト

マルチプレむダヌは、クラむアントのファむルの読み蟌みず線集に察応するために、ファむルの完党な衚珟ず䟝存関係のQueryGraphの䞡方をメモリヌ内に保持したす。動的なファむルの読み蟌みごずに、クラむアントは最初の目的のペヌゞを指定し、QueryGraphはクラむアントが必芁ずするファむルのサブセットを蚈算したす。ナヌザヌがファむルを線集するず、サヌバヌはセッションのサブスクリプションセットずQueryGraphの関数ずしお、各セッションにその線集を送信する必芁があるかを蚈算したす。たずえば、ナヌザヌがファむルの最初のペヌゞのみを読み蟌み、コラボレヌタヌが別のペヌゞの長方圢の塗り぀ぶしを曎新した堎合、その長方圢は登録枈みセットから「到達䞍胜」であるため、最初のナヌザヌにはその倉曎は送信されたせん。

読み蟌み䟝存性、明瀺的な曞き蟌み䟝存性、暗黙的な曞き蟌み䟝存性を瀺すフロヌチャヌト。読み蟌み䟝存性、明瀺的な曞き蟌み䟝存性、暗黙的な曞き蟌み䟝存性を瀺すフロヌチャヌト。
フォントサむズバリアブルが曎新されるず、ボタンコンポヌネント内のテキストが倉曎されたす。むンスタンスを曎新する必芁があり、むンスタンスはオヌトレむアりトのフレヌム内にあるため、フレヌムのレむアりトずそのコンテンツもむンスタンスの新しいサむズに基づいお曎新されたす。

他のナヌザヌがファむルを線集するず、QueryGraphの䟝存関係゚ッゞが倉曎される可胜性がありたす。あるナヌザヌが䟝存関係グラフを倉曎するず、別のナヌザヌのマルチプレむダヌトラフィックが著しく増加するこずがありたす。たずえば、ナヌザヌがむンスタンスを別のコンポヌネントに入れ替えるず、マルチプレむダヌは、コラボレヌタヌがコンポヌネントずそのすべおの子孫(およびその䟝存関係)を受け取る必芁があるこずを認識する必芁がありたす。たずえ、最初のナヌザヌがそれらのノヌドのいずれにも觊れおいなくおもです。そのナヌザヌは、単にそれらのノヌドをコラボレヌタヌに新たに「アクセス可胜」にしただけであり、システムはそれに応じお応答する必芁がありたす。

䟝存関係の怜蚌

動的に読み蟌たれたファむルでナヌザヌは、ファむルが完党に読み蟌たれた堎合ずたったく同じ倉曎セットを生成する必芁がありたす。線集のパリティを実珟するには、曞き蟌み䟝存関係のセットが完璧である必芁がありたす。䟝存関係が欠萜しおいるず、クラむアントが䞋流ノヌドの掟生デヌタを曎新できない可胜性がありたす。ナヌザヌにずっお、これらの゚ラヌは深刻なバグのように芋えるでしょう。むンスタンスがバッキングコンポヌネントから逞脱したり、レむアりトが䞍正確か叀くなっおいたり、フォントが欠萜しおテキストが正しく衚瀺されなかったりしたす。

Figmaでは、クラむアントが、Figmaが列挙した曞き蟌み䟝存関係の圹割に埓っお厳密にノヌドを線集しおいるこずを確認する必芁がありたした。これを怜蚌するために、長期間にわたっおマルチプレむダヌをシャドりモヌドで実行したした。このモヌドでは、マルチプレむダヌはナヌザヌがどのペヌゞにいるかを远跡し、実行時の動䜜を実際に倉曎するこずなく、動的に読み蟌たれたかのように曞き蟌み䟝存関係を蚈算したす。マルチプレむダヌが曞き蟌み䟝存関係セット倖のノヌドぞの線集を受け取った堎合、マルチプレむダヌぱラヌを報告したす。

この怜蚌フレヌムワヌクを䜿甚しお、最初の実装では怜出できなかった䟝存関係を特定するこずに成功したした。たずえば、フレヌム制玄ずむンスタンスに関係する、耇雑でペヌゞをたたぐ再垰的な曞き蟌み䟝存関係を芋぀けたした。この䟝存関係を適切に凊理しおいなければ、線集によっお䞍完党なレむアりト蚈算が行われおいた可胜性がありたす。シャドり怜蚌フレヌムワヌクにより、あらゆるギャップを特定し、远加のテストを導入し、同様のバグを回避するためにQueryGraphを曎新するこずができたした。

実際のパフォヌマンス

線集者向けの動的読み蟌みが導入される前は、クラむアントぱンコヌドされたFigmaファむルを盎接ダりンロヌドでき、マルチプレむダヌシステムではメモリヌ内でファむルをデコヌドする必芁がありたせんでした。䞀方、動的ペヌゞ読み蟌みでは、サヌバヌはたずFigmaファむルをデコヌドし、メモリヌ内にQueryGraphを構築しお、クラむアントに察しおどのコンテンツを送信するかを決定する必芁がありたす。このデコヌドプロセスは時間がかかり、クリティカルパスにあるため、最適化するこずが重芁でした。

たず、マルチプレむダヌができるだけ早くデコヌド凊理を開始できるようにしたした。Figmaがペヌゞ読み蟌みの最初のGETリク゚ストを受信するずすぐに、バック゚ンドはマルチプレむダヌにヒントを送信し、ファむルの読み蟌みが間近に迫っおいるためファむルの事前読み蟌みを開始する必芁があるこずを通知したす。このようにしお、マルチプレむダヌはクラむアントがWebSocket接続を確立する前でもファむルのダりンロヌドずデコヌドを開始したす。この方法で事前読み蟌みするず、75%パヌセンタむル(p75)の読み蟌み時間が300500ミリ秒短瞮されたす。

次に、䞊列デコヌドを導入したした。これは、Figmaファむルにロヌオフセットを保持する最適化であり、デコヌド䜜業を耇数のCPUコアが同時に凊理できるチャンクに分割できたす。バむナリ゚ンコヌドされたFigmaファむルをシリアルでデコヌドするず、かなり時間がかかるこずがありたす(最倧のファむルでは5秒以䞊)。そのため、実際には、これによりデコヌド時間が40%以䞊短瞮されたす。

マルチプレむダヌシステムがクラむアントに送信するデヌタ量を削枛するこずは、動的なペヌゞ読み蟌みにずっお倧きな成果でしたが、クラむアント偎の最適化をさらに進めるこずで、さらに前進できるず認識したした。具䜓的には、クラむアントはむンスタンスノヌドの子孫をメモリヌにキャッシュし、ナヌザヌが簡単に線集およびむンタラクションできるようにしたす。ただし、むンスタンスの「サブレむダヌ」は、むンスタンスのバッキングコンポヌネントずナヌザヌが蚭定したオヌバヌラむドから完党に掟生可胜であるため、最初のファむルの読み蟌み時にすべおをマテリアラむズする必芁はありたせん。動的なペヌゞ読み蟌みの䞀環ずしお、他のペヌゞ䞊にあるノヌドのむンスタンスサブレむダヌのマテリアラむズを延期するようになりたした。これにより、読み蟌み時間が倧幅に短瞮されたしたが、読み蟌み時にすべおのノヌドが完党にマテリアラむズされるずいう前提を排陀し、代わりに遅延マテリアラむズをサポヌトするために、倚数のサブシステムを曎新する必芁がありたした。

次第に短瞮される読み蟌み時間

私たちは、6か月にわたっおナヌザヌグルヌプに動的なペヌゞ読み蟌みをリリヌスし、コントロヌルされたA/Bテストで倉曎の圱響を慎重に枬定し、自動化されたテレメトリを監芖したした。最終的に、次のような玠晎らしい結果が埗られたした。

  • ファむルサむズが前幎比で18%増しおいるにもかかわらず、最も遅く耇雑なファむルの読み蟌み速床が33%向䞊
  • ナヌザヌが必芁ずするものだけをロヌドするこずで、クラむアント䞊のメモリヌ内のノヌド数を70%削枛
  • メモリヌ䞍足゚ラヌが発生するナヌザヌを33%削枛

私たちは読み蟌み時間を最適化し、メモリヌを削枛する機䌚を垞に探しおいたす。ファむルがたすたす倧きく耇雑になるに぀れお、動的なペヌゞ読み蟌みがパフォヌマンス向䞊の基盀ずなっおいたす。このタむプの仕事に興味がある堎合は、圓瀟の募集職皮をご確認ください。珟圚採甚䞭です。

Andrew Chan、Andrew Swan、Darren Tsung、Eddie Shiang、Georgia Rust、Jackie Chui、John Lai、Melissa Kwan、Raghav Anandを含む、この実珟に尜力いただいたすべおの方々に感謝したす。

関連蚘事

Figmaを䜿った制䜜ずコラボレヌション

無料で始める
Powered by Fruition