CodeBlanks Logo Icon CodeBlanks

Performance

V8 flags ve flame graph ile optimizasyon eklersin.

Performans katmanı

Dördüncü derste performans katmanını ekleriz. V8 bayrakları, Node.js'in motor davranışını değiştirir; --turbofan iyileştiriciyi açar. Bu projede gerçek bayrak ayarlamak yerine, onu temsil eden bir performanceLayer fonksiyonu yazıyoruz.

performanceLayer fonksiyonu { flag: '--turbofan', status: 'hazır' } döndürür. Çıktıya yeni satır olarak --turbofan: hazır eklenir. Başlangıç kodu, önceki üç dersin çözümlerini taşır. Bu birikimli büyüme, son dersteki integrationReport için zemini hazırlar. Gerçek performans ayarı üretimde node --turbofan app.js biçiminde yapılır; burada modelleme, kavramın yerini tutar.

Bayrak katmanı ekleme

Performans katmanı, önceki katmanlarla aynı deseni izler: bir nesne döndürür ve konsola 'alan: değer' biçiminde yazdırır. Bu tutarlılık, son dersteki birleştirmeyi kolaylaştırır.

Örnek: console.log(performanceLayer().flag + ': ' + performanceLayer().status). Bu, --turbofan: hazır satırını üretir. Önceki dört satır (ExpertProject, 1.0, N-API: hazır, OpenTelemetry: hazır) korunur; yenisinin ardından eklenir. Her katman aynı nesne yapısını kullanır: bir tanımlayıcı alan (apı, tracing, flag) ve bir status alanı. Bu tutarlılık, integrationReport fonksiyonunun tüm katmanları tek bir dizede birleştirmesini sağlar.

Uygulama Performans katmanını ekle

Önceki derslerin setupProject, nativeAddon ve distributedLayer çözümlerini al. function performanceLayer() ekle; return { flag: '--turbofan', status: 'hazır' } döndürsün. console.log(performanceLayer().flag + ': ' + performanceLayer().status) ile yazdır.

Başlangıç kodu

index.js
function setupProject() {
  return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
  return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
function distributedLayer() {
  return { tracing: 'OpenTelemetry', status: 'hazır' };
}
console.log(distributedLayer().tracing + ': ' + distributedLayer().status);
// performanceLayer fonksiyonu yaz
// TurboFan bayrağını taşıyan bir nesne döndürsün
// flag ve status'u yazdır
// buraya yaz

Örnek çözüm

index.js
function setupProject() {
  return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
  return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
function distributedLayer() {
  return { tracing: 'OpenTelemetry', status: 'hazır' };
}
console.log(distributedLayer().tracing + ': ' + distributedLayer().status);
function performanceLayer() {
  return { flag: '--turbofan', status: 'hazır' };
}
console.log(performanceLayer().flag + ': ' + performanceLayer().status);

Beklenen çıktı

ExpertProject
1.0
N-API: hazır
OpenTelemetry: hazır
--turbofan: hazır

Soru ve cevaplar

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

1 V8 bayrağı --turbofan ne yapar?

index.js
function performanceLayer() { return {flag: '--turbofan', status: 'hazır'}; }
  • Dosya siler
  • JIT'i kapatır
  • TurboFan iyileştiricisini açar Doğru cevap
  • Belleği boşaltır

Açıklama: --turbofan TurboFan iyileştiricisini açar.

2 Parçayı rolüne eşle

Kavram Anlamı
--turbofan V8 bayrağı
performanceLayer Katman fonksiyonu
flag Bayrak adı
TurboFan İyileştirici

3 flag alanını tamamla

Soru
return { flag: '____', status: 'hazır' };
Cevap
return { flag: '--turbofan', status: 'hazır' };

Açıklama: flag alanı '--turbofan' değerini taşır.

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