Node.js Performans API'sine Giriş

Node.js, uygulamalarınızın performansını ölçmek ve iyileştirmek için güçlü araçlar sunar. Performans API'si gibi.

Efe Demir

Efe Demir

5 June 2025

Node.js Performans API'sine Giriş

Node.js, uygulamalarınızın performansını ölçmek ve optimize etmek için güçlü araçlar sağlar. Bu araçlardan biri, geliştiricilerin yüksek çözünürlüklü zaman damgaları ve çeşitli performans ölçümlerini yakalamasına olanak tanıyan Performance API'sidir. Bu kılavuz, Node.js Performance API'sinin temel bileşenlerini ve bunları etkili bir şekilde nasıl kullanacağınızı tanıtacaktır.

Node.js'de Performans Neden Önemlidir?

Node.js, I/O'ya bağlı görevler için mükemmel bir şekilde uygun, olay güdümlü, eşzamansız mimarisiyle parlar. Ancak, bu engellemeyen ortamda bile, performans her şeyden önemlidir. Yavaş uygulamalar, kullanıcıların hayal kırıklığına yol açar ve ölçeklenebilirliği engeller. Darboğazları belirlemek ve kodu optimize etmek, kusursuz bir kullanıcı deneyimi için elzem hale gelir.

API yanıt sürenizi artırmakla mı ilgileniyorsunuz? Aşağıdaki makale, API yanıt sürenizi nasıl artıracağınıza dair adım adım bir rehber sunmaktadır.

Neden Node.js Performance API'sini Kullanmalısınız?

  1. Performans Darboğazlarını Belirleyin: Performans darboğazları, kullanıcı deneyimini önemli ölçüde bozabilir. Performance API'sini kullanan geliştiriciler, işlev yürütme, kaynak yükleme veya HTTP istek işleme gibi gecikmelerin meydana geldiği tam anları tespit edebilirler. Bu hassasiyet, hedeflenmiş optimizasyonları sağlar.
  2. Kaynak Kullanımını Optimize Edin: Performansı izlemek, CPU ve bellek gibi kaynakların nasıl kullanıldığını anlamaya yardımcı olur. Verimsiz kaynak kullanımını belirleyerek, geliştiriciler kodlarını daha verimli hale getirmek için optimize edebilir, maliyetleri düşürebilir ve ölçeklenebilirliği artırabilir.
  3. Kullanıcı Deneyimini İyileştirin: Hızlı yanıt veren uygulamalar daha iyi bir kullanıcı deneyimi sağlar. Performance API, İlk Bayta Kadar Geçen Süre (TTFB) ve İlk İçerik Dolu Boyama (FCP) gibi temel ölçümleri ölçmeye yardımcı olur ve geliştiricilerin daha hızlı yükleme sürelerine ve daha sorunsuz etkileşimlere yol açan iyileştirmeler yapmasını sağlar.
  4. Uygulama Kararlılığını İyileştirin: Sürekli performans izleme, anormallikleri ve potansiyel sorunları kritik hale gelmeden önce tespit etmeye yardımcı olur. Bu proaktif yaklaşım, uygulamanın daha yüksek çalışma süresi ve güvenilirliğini sağlar.

Node.js Performance API'sine Giriş

perf_hooks modülü aracılığıyla erişilebilen Performance API, Node.js geliştiricilerini uygulama performansını ölçmek ve analiz etmek için kapsamlı bir araç setiyle donatır. Date.now() gibi geleneksel yöntemlere göre önemli bir avantaj sunarak, yüksek çözünürlüklü zamanlama ve performansı değerlendirmeye daha yapılandırılmış bir yaklaşım sağlar. Date.now() yönteminde şuna benzer bir şey göreceksiniz;

const startTime = Date.now();
// call a function to perform a task()
console.log(`Task duration: ${Date.now() - startTime} milliseconds`);

Date.now() işlevi iyi çalışır, ancak görünüşte basit olmasına rağmen, bu yöntem güvenilmez olabilir çünkü sistem saati değişiklikleri ölçümleri bozabilir.

İşte Node.js Performance API'sinin devreye girdiği yer burasıdır. Uygulama zaman kullanımımızı tam olarak ölçebilmek ve sistem saati gibi şeylerle uğraşmak istemiyoruz, değil mi?

Node.js Performance API'si, perf_hooks modülü tarafından sağlanan birkaç temel yöntem ve sınıf etrafında oluşturulmuştur. Bunlar şunları içerir:

  1. performance.now(),
  2. performance.mark(),
  3. performance.measure() ve
  4. PerformanceObserver.

Bu araçların her biri, performans ölçümlerini yakalamak ve analiz etmek için farklı bir amaca hizmet eder.

performance.now() Kullanımı

performance.now() yöntemi milisaniye cinsinden yüksek çözünürlüklü bir zaman damgası döndürür. Bu, uygulamanız içindeki aralıkları Date.now()'dan daha yüksek bir hassasiyetle ölçmek için kullanışlıdır.

Bir görevin süresini elde etmek için, ölçmek istediğiniz işlemin başlangıcına ve sonuna performance.now() yöntemini aşağıdaki gibi ekleyin;

const { performance } = require('node:perf_hooks');
const start = performance.now();
// Perform some operations
const end = performance.now();
console.log(`Time taken: ${end - start} ms`);

Her şeyden önce, performansı node modüllerinden içe aktarıyoruz ve ardından doğru işlemin zamanını elde etmek için başlangıç ve bitiş sabitleri oluşturup performance.now yöntemlerini onlara atıyoruz.

Yukarıdaki kodun çıktısı aşağıdaki gibi görünmelidir;

Time taken: 1253.**** ms.

performance.mark() Kullanımı

Node.js'deki performance.mark() yöntemi, kodunuzdaki belirli noktalarda adlandırılmış zaman damgaları (veya işaretler) oluşturmanıza olanak tanır. Bu işaretler, uygulamanızın farklı bölümleri arasında geçen süreyi ölçmenize yardımcı olarak, performans darboğazları hakkında bilgi verir.

const { performance } = require('node:perf_hooks');

performance.mark('A');
// Some operations
performance.mark('B');

Bu örnekte, performance.mark('A') ve performance.mark('B') sırasıyla 'A' ve 'B' etiketli iki işaret oluşturur.

İşaretler ayrıca, hata ayıklama veya daha fazla analiz için yararlı olabilecek ek ayrıntılar da içerebilir.
performance.mark('A', { detail: 'Start of operation' }); performance.mark('B', { detail: 'End of operation' });

Burada, detail özelliği, her bir işaretin neyi temsil ettiğine dair ek bilgiler sağlar.
İşaretler oluşturduktan sonra, performance.measure() kullanarak bunlar arasındaki süreyi ölçebilirsiniz.

performance.measure() Kullanımı

performance.measure(), Node.js'nin Performance API'sinde, uygulamanızın yürütme zaman çizelgesinde işaretlenmiş iki nokta arasındaki süreyi özel olarak hesaplayan bir işlevdir. Esasen bir ölçüm girdisi oluşturur ve daha sonra alınması ve analiz edilmesi için geçen süreyi depolar.

performance.mark() bölümünde, iki işaret oluşturduğumuzu hatırlayın: A & B. Bu bölümde, bunları test edeceğiz ve performance.mark()'ın performance.measure() ile nasıl çalıştığını göreceğiz.

performance.measure('A to B', 'A', 'B');
const measures = performance.getEntriesByType('measure');
measures.forEach(measure => {
  console.log(`${measure.name}: ${measure.duration}ms`);
});

Bu, 'A to B' adlı bir ölçüm oluşturacak ve 'A' ve 'B' işaretleri arasında geçen süreyi hesaplayacaktır.

Yukarıdaki kodu çalıştırdığınızda, çıktı 'A' ve 'B' işaretleri arasındaki süreyi gösterecektir. İşte konsolun şuna benzer bir şey yazdırabileceği bir örnek:

A to B: 12.345ms

Bu çıktı, 'A' ve 'B' işaretleri arasındaki işlemlerin tamamlanmasının yaklaşık 12.345 milisaniye sürdüğünü gösterir.

PerformanceObserver Kullanımı

Node.js'deki PerformanceObserver arayüzü, geliştiricilerin işaretler, ölçümler ve kaynak zamanlama girdileri gibi performans girdilerini eşzamansız olarak gözlemlemesine ve işlemesine olanak tanır. Performans verilerini toplandığı anda izlemek ve bunlara tepki vermek için özellikle kullanışlıdır ve bu da onu gerçek zamanlı performans analizi ve optimizasyonu için temel bir araç haline getirir.

PerformanceObserver'ı kullanmak için, bunun bir örneğini oluşturmanız ve performans girdilerini işleyecek bir geri çağırma işlevi tanımlamanız gerekir. İşte temel bir kurulum:

const { PerformanceObserver, performance } = require('node:perf_hooks');

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    console.log(entry);
  });
});

observer.observe({ entryTypes: ['mark', 'measure'] });

Bu örnekte:

  1. PerformanceObserver ve performance'ın İçe Aktarılması: PerformanceObserver ve performance nesneleri, perf_hooks modülünden içe aktarılır.
  2. Bir Gözlemci Oluşturma: Bir geri çağırma işleviyle birlikte bir PerformanceObserver örneği oluşturulur. Bu işlev, yeni performans girdileri kaydedildiğinde çağrılır.
  3. Girdi Türlerini Gözlemleme: observer.observe yöntemi, gözlemlenecek girdi türlerini (bu durumda mark ve measure) belirten bir nesneyle çağrılır.

PerformanceObserver için Pratik Kullanım Durumları

1. Gerçek Zamanlı Performans İzleme:

2. Kaynak Yüklemesini Analiz Etme:

3. Hata Ayıklama ve Profil Çıkarma:

4. Özel Performans Ölçümleri:

Node.js'de Uygulama Testi

Şimdiye kadar, Node.js Performance API'sini, neden önemli olduğunu, nasıl çalıştığını ve varsayılan Date.now() işlevinden nasıl farklılaştığını öğrendik.

Ancak, bir uygulama oluşturuyorsanız, uygulamanızı oluşturmaya odaklanmak ve testi diğer hizmetlere bırakmak isteyeceksiniz. Neyse ki, Apidog sayesinde, API'lerinizi ve uygulamalarınızı test edebilirsiniz.

API performance testing by Apidog

Apidog, performans testi dahil olmak üzere API testleri için özel olarak tasarlanmış güçlü bir araçtır. API'leri oluşturmak, yönetmek ve test etmek için kapsamlı çözümler sunar. Apidog, API davranışlarını simüle etmenize, test senaryoları tanımlamanıza ve ayrıntılı raporlar oluşturmanıza olanak tanır. Sezgisel arayüzü sayesinde, performans testlerini kolayca yapılandırabilir, yanıt sürelerini analiz edebilir ve performans darboğazlarını belirleyebilirsiniz.

button

Sonuç

performance.mark(), performance.measure() ve PerformanceObserver gibi araçları içeren Node.js Performance API'si, geliştiricilere uygulama performansını izlemek ve optimize etmek için güçlü yetenekler sağlar. Bu araçlardan yararlanarak, Node.js uygulamalarınızın performans özelliklerine ilişkin kesin bilgiler edinebilir, darboğazları belirleyebilir ve verimliliği ve kullanıcı deneyimini artırmak için hedeflenmiş optimizasyonlar uygulayabilirsiniz.

Performance API'sinin ötesinde, en iyi API/Uygulama uygulamalarını kullanmak ve sağlam yük testi ve izleme, uygulamalarınızın genel performansını önemli ölçüde artırabilir. Bu birleşik çabalar, Node.js uygulamalarınızın sorunsuz çalışmasını, etkili bir şekilde ölçeklenmesini ve üstün bir kullanıcı deneyimi sağlamasını sağlayarak, pazarda rekabet avantajını korur.

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin