CodeBlanks Logo Icon CodeBlanks

Özet - Performans

Performans odaklı bir kütüphane projesi yazarsın.

Özet: performans optimizasyonu

Performans optimizasyonunun üç temel direği vardır: tür karmaşıklığını azaltmak (büyük birleşimleri ve derin özyinelemeyi sadeleştirmek), --generateTrace ile sıcak noktaları bulmak ve project references ile yapıyı bölerek artımlı derleme kurmak. Bu üçü birlikte, büyük TypeScript projelerinde dakikalar yerine saniyeler kazandırır.

tsc --generateTrace ./trace
# en pahalı türü bul
# birleşimleri sadeleştir
# references ile böl

Önce izle, sonra sadeleştir, en son böl.

Uygulama Performans config'ini doğrula

Bir validatePerfConfig fonksiyonu yaz: config'in incremental ve composite alanlarını kontrol etsin; eksikse uyarı dizisine ekleme yapsın. maxNodeCount 1.000.000'den büyükse de uyarı ekle. { incremental: true, composite: true, maxNodeCount: 500000 } config'i için uyarı sayısını yazdır.

Başlangıç kodu

index.ts
// performans config'ini doğrula
// artımlı ve composite bayraklarını kontrol et
// düğüm sayısı yüksekse uyar
// uyarı sayısını yazdır

Örnek çözüm

index.ts
type PerfConfig = {
  incremental?: boolean;
  composite?: boolean;
  maxNodeCount?: number;
};

function validatePerfConfig(config: PerfConfig): string[] {
  const warnings: string[] = [];
  if (!config.incremental) warnings.push("enable incremental");
  if (!config.composite) warnings.push("enable composite for references");
  if (config.maxNodeCount && config.maxNodeCount > 1000000) {
    warnings.push("maxNodeCount very high");
  }
  return warnings;
}

const config = { incremental: true, composite: true, maxNodeCount: 500000 };
console.log(validatePerfConfig(config).length);

Beklenen çıktı

0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Performans optimizasyonunun doğru sırası nedir?

  • Önce sadeleştir, sonra izle, en son böl
  • Önce izle, sonra sadeleştir, en son böl Doğru cevap
  • Önce izle, sonra böl, en son sadeleştir
  • Önce böl, sonra sadeleştir, en son izle

Açıklama: Önce izleme yapılarak sıcak nokta bulunur, sonra tür karmaşıklığı sadeleştirilir, en son yapı bölünür; sıcak nokta bilinmeden sadeleştirme veya bölme kör olur.

2 Sadeleştirme örüntüsü

Soru
// app → core → utils
// app değişirse: yalnızca ____ yeniden derlenir
Cevap
// app → core → utils
// app değişirse: yalnızca app yeniden derlenir

Açıklama: Bağımlılık zincirinde yaprak değişirse yalnızca o proje yeniden derlenir; bağımlıları etkilenmediği için utils, core ve tümü yanlıştır.

3 Performans parçaları

Kavram Anlamı
--generateTrace sıcak noktayı bulur
Tür sadeleştirme karmaşıklığı azaltır
Project references yapıyı böler
.tsbuildinfo artımlı önbellek

Uzman bölümündeki tüm dersler