Java 8 · sıralı çağrılar
8 işçi; her siparişin üç bağımsız servisi sırayla beklenir.
- CPU süresi
- 259,207 ms
- Tepe platform iş parçacığı
- 12
KOD, MİMARİ VE SÜRÜM DEĞİŞİKLİKLERİ
Sipariş kuyruğu, ağır rapor, yavaş sorgu. İş yükünü artırın; eski uygulama biçimiyle iyileştirilmiş kodun aynı işi nasıl tamamladığını karşılaştırın.
Ölçüm ilkelerini okuyunJava 8 → 25 LABORATUVAR ÖLÇÜMÜ
Fiyat, stok ve kargo yanıtlarıyla sipariş hazırlama. Aynı sipariş sonucunu sürüm değişikliği ve paralel iş akışıyla ayrı ayrı ölçtük.
Yoğun saatlerde sipariş kuyruğunu daha kısa sürede bitirin. Dış servis beklerken çalışanı meşgul tutan yapı yerine, birbirinden bağımsız işleri birlikte yürütün.
8 işçi; her siparişin üç bağımsız servisi sırayla beklenir.
Aynı bytecode ve aynı 8 işçi. Yalnız çalışma ortamı değişti.
Çağrılar paralel; 64 platform işçisi ve 64 dış çağrı sınırı.
Bağımsız çağrılar paralel; aynı 64 dış çağrı sınırı, görev başına virtual thread.
Çubuklar sıfırdan başlar; tüm uygulamalarda aynı süre ölçeği kullanılır.
Sıralı servis çağrılarını ayırıp birlikte başlattık. Java 25 sanal iş parçacıkları bekleyen görevleri az sayıda platform iş parçacığı üzerinde taşıyor. Eşdeğer platform havuzu kontrolü, aynı hızın farklı kaynak yapısıyla da elde edilebildiğini gösteriyor.
| Uygulama | Medyan süre | CPU süresi | Tepe platform iş parçacığı |
|---|---|---|---|
| Java 8 · sıralı çağrılar | 182,873 ms | 25,94 ms | 12 |
| Java 25 · aynı eski kod | 184,777 ms | 18,021 ms | 14 |
| Java 25 · paralel platform kontrolü | 31,538 ms | 11,909 ms | 70 |
| Java 25 · sanal iş parçacıkları | 31,61 ms | 10,142 ms | 18 |
| Uygulama | Medyan süre | CPU süresi | Tepe platform iş parçacığı |
|---|---|---|---|
| Java 8 · sıralı çağrılar | 729,54 ms | 52,624 ms | 12 |
| Java 25 · aynı eski kod | 725,443 ms | 65,806 ms | 14 |
| Java 25 · paralel platform kontrolü | 97,516 ms | 29,633 ms | 70 |
| Java 25 · sanal iş parçacıkları | 97,451 ms | 42,585 ms | 18 |
| Uygulama | Medyan süre | CPU süresi | Tepe platform iş parçacığı |
|---|---|---|---|
| Java 8 · sıralı çağrılar | 2,95 sn | 259,207 ms | 12 |
| Java 25 · aynı eski kod | 2,93 sn | 256,989 ms | 14 |
| Java 25 · paralel platform kontrolü | 399,298 ms | 108,114 ms | 70 |
| Java 25 · sanal iş parçacıkları | 380,91 ms | 125,21 ms | 18 |
Ölçülen işlemci süresini kendi aylık hacminizle karşılaştırın.
Bir çalıştırma = 256 Birlikte gelen sipariş.
Azalan CPU süresi / ay0,3722 saat
İşlem bedeli farkı / ay—Birim bedel girildiğinde hesaplanır.
Laboratuvar CPU süresi × girdiğiniz hacim ve birim bedel. Hosting faturası tahmini değildir; boşta kaynak, ağ, depolama, lisans ve geçiş dahil değil.
7 vaka gösteriliyor
Uygulama modernizasyonu
256 siparişin tamamlanması: 2,95 sn → 380,91 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
Java 8 · sıralı çağrılar→Java 25 · sanal iş parçacıkları
256 siparişin tamamlanması
↓ %87,09
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemiUygulama modernizasyonu
5.000.000 siparişten rapor: 1,22 dk → 175,5 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
İndekssiz ay sonu raporu→Aynı rapor + kapsayan indeks
5.000.000 siparişten rapor
↓ %99,76
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemiUygulama modernizasyonu
50.000 satırlık ürün aktarımı: 708,22 ms → 1,51 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
Her satırda listeyi tara→Ürün koduyla Dictionary erişimi
50.000 satırlık ürün aktarımı
↓ %99,79
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemiUygulama modernizasyonu
50.000 faturayı filtreleyip listeleme: 1,39 sn → 16,5 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
Tüm eşleşmeleri ekrana ekle→Görünür satırları çiz
50.000 faturayı filtreleyip listeleme
↓ %98,81
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemiUygulama modernizasyonu
200.000 siparişten rapor: 1,27 sn → 8,49 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
Her müşteri için tekrar tara→Tek geçişte özetle
200.000 siparişten rapor
↓ %99,33
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemiUygulama modernizasyonu
200.000 siparişten rapor: 1,13 sn → 7,19 ms. Sentetik laboratuvar; 10 tekrarın medyanı. Kod ve ham veri açık.
İndekssiz sorgu→Aynı sorgu + bileşik indeks
200.000 siparişten rapor
↓ %99,36
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemi

Uygulama modernizasyonu
Aynı bytecode ile bellekte 1 milyon sipariş raporu: 1,891 ms → 1,886 ms. Yedi veri boyutu ve 440 gerçek JVM koşusuyla sentetik runtime deneyi.
Corretto 8u432→Corretto 25.0.3
Bellekte 1 milyon sipariş raporu
↓ %0,3
Düşük daha iyi · 10 ölçümün medyanı
Ölçüm yöntemi