Performance
- Node.js kursu
- Uzman
- Ders 46/47
- 6 dk
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
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
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?
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
return { flag: '____', status: 'hazır' };
return { flag: '--turbofan', status: 'hazır' };
Açıklama: flag alanı '--turbofan' değerini taşır.