A/B testimiz, açıkta. Bizi ölçün.
Her koşuyu yayınlıyoruz: herkese açık veri kümeleri üzerinde dört batarya, 10 model ve her iki kol da sağlayıcının kendi kullanım sayacıyla ölçülüyor. Her sayı kendi n değerini, aralığını ve tarihini taşır. Tasarruf sağlamayan da burada.
- batarya
- 4
- denenen model
- 10
- ölçümü olan model
- 10
- canlı rapor
- 15
- son koşu
- 29 Eyl 2026
Ne ölçülüyor ve nasıl
- İki kol, aynı istek. A, katman olmadan doğrudan sağlayıcıya gider; B, varsayılan yapılandırmasıyla katmandan geçer. Aynı prompt, aynı örnekleme, aynı çıktı sınırı.
- Maliyeti sağlayıcı sayar. Her kol, API'nin her çağrıda döndürdüğü
usagedeğeriyle, liste fiyatı üzerinden fiyatlandırılır. Tasarruf, aynı koşunun 1 − maliyet(B) / maliyet(A) değeridir, katmanın kendisi hakkında söyledikleri değil. - %95 aralıkları. Bunları her test düzeneği hesaplar (bütün soru ailelerinin yeniden örneklenmesi, ret oranları için Wilson). Sıfırı kesen bir aralık “sıfırdan ayırt edilemez” demektir ve bunu böyle söylüyoruz.
- Kurduğunuz paket. B kolu, 0.4.31 etiketinin kaynağını çalıştırır;
dist/index.jsdosyası npm paketininkiyle bayt bayt aynıdır (sha256b52f99cacf9804ecd3153e56f26ec3adcdc2510d52a8446a369ecf914e0b5731). - Kestirme yok. Her test düzeneği konuştuğu sunucuları izler ve kod içinde yazılı, model başına bir harcama sınırı taşır. Ölçülemeyen bir model, nedeniyle birlikte “ölçülmedi” olarak raporlanır.
Dört batarya, herkese açık veri kümeleri, sabitlenmiş
| Batarya | Neyi kontrol ediyor | Veri kümesi | Sabitlenmiş dosyalar | Lisans |
|---|---|---|---|---|
| GSM8K | Tekrarlar ve başka sözcüklerle ifade edilmiş halleriyle matematik problemleri: önbelleğin ne kadar tasarruf sağladığı ve doğruluğun düşüp düşmediği. | openai/grade-school-mathcommit 3101c7d5072418e28b9008a6636bde82a006892c | gsm8k-test sha256 3730d312f6e3440559ace48831e51066acaca737f6eabec99bccb9e4b3c39d14gsm8k-trainsha256 17f347dc51477c50d4efb83959dbb7c56297aba886e5544ee2aaed3024813465 | MIT |
| BFCL | Araç çağrıları: katman bunlardan hiçbirini değiştirmemeli ve kataloğun tamamı ulaşmalıdır. | ShishirPatil/gorillacommit f7cf7359b7ac615a0b294831c5ba2bc95ee4a000 | commit ile sabitlenmiş | Apache-2.0 |
| XSTest | Reddler: katman, modelin ne zaman reddettiğini değiştirmemeli, önbellekten bir ret sunmamalıdır. | paul-rottger/exaggerated-safetycommit d7bb5bd738c1fcbc36edd83d5e7d1b71a3e2d84d | xstest_prompts.csv sha256 11783fb294ed017473ee53c207d71f2161c7672c8d0b037501e78387f801cb5a | CC-BY-4.0 |
| MT-Bench | Tekrarsız iki turlu sohbet: katman maliyeti, gecikmeyi veya kaliteyi kötüleştirmemelidir. | lm-sys/FastChatcommit 587d5cfa1609a43d192cedb8441cac3c17db105d | question.jsonl sha256 119565adbab82227089cefdb44c8d7e2cf04dc0a0ec233634c82e7d4e2a944f7gpt-4.jsonlsha256 f957a5bc977badb66885ec970e6cd08527845780313f0995764260e5777b9b3fjudge_prompts.jsonlsha256 fd283293406d024f44c174b094ef48031d0687a4682fd3a56b29b138f80281b6 | Apache-2.0 |
Model başına ölçülen tasarruf
GSM8K, isteklerin %30 kadarının tam tekrar, %20 kadarının başka sözcüklerle ifade edilmiş olduğu bir istek akışında. Bu, tekrarlayan trafiğe sahip batarya: sizin tasarrufunuz kendi trafiğinizin ne kadar tekrarlandığına bağlıdır. Tekrar yoksa “Tasarruf sağlamayan” bölümüne bakın.
| Model | n | Ölçülen tasarruf [GA] | Tam önbellekten | Çağrılarda (önek) | Doğruluk A → B | Sürüm · tarih |
|---|---|---|---|---|---|---|
openai/gpt-4o-mini | 200 istek · 100 benzersiz | %31,5 [%25,7 – %36,7] | $0,0124 | $0,0006 | %95,0 → %96,1Δ +1,1 pp [0,0, +2,8] | 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.4-mini | 176 istek · 88 benzersiz | %31,7 [%25,6 – %37,6] | $0,0734 | $0,0003 | %95,6 → %93,7Δ -1,9 pp [-5,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.5 | 22 istek · 11 benzersiz | %33,4 [%6,8 – %53,8] | $0,0790 | -$0,0023 | %100,0 → %100,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.6-sol | 32 istek · 16 benzersiz | %29,2 [%9,5 – %46,8] | $0,0252 | -$0,0003 | %100,0 → %100,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
anthropic/claude-haiku-4-5 | 116 istek · 58 benzersiz | %32,2 [%23,6 – %40,2] | $0,0773 | $0,0002 | %99,0 → %99,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
anthropic/claude-opus-5-5 | 32 istek · 16 benzersiz | %77,2 [%67,1 – %83,9] | $0,0974 | $0,1391 | %100,0 → %100,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
anthropic/claude-sonnet-5 | 62 istek · 31 benzersiz | %75,1 [%69,3 – %79,6] | $0,1054 | $0,1313 | %100,0 → %100,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
anthropic/claude-sonnet-5-5 | 62 istek · 31 benzersiz | %77,5 [%72,0 – %81,7] | $0,0924 | $0,1289 | %100,0 → %100,0Δ 0,0 pp [0,0, 0,0] | 0.4.31 · 28 Eyl 2026 |
google/gemini-3.1-pro-preview | katman başarısız oldu: istekler katmandan geçmedi | 0.4.31 · 28 Eyl 2026 | ||||
google/gemini-3.8-flash | katman başarısız oldu: istekler katmandan geçmedi | 0.4.31 · 28 Eyl 2026 | ||||
Tasarrufun nereden geldiği, pozisyon pozisyon: “tam önbellekten” olan, katmanın sağlayıcıyı çağırmadan sunduğu isteklerde A'nın ödediği tutardır; “çağrılarda” olan ise, sağlayıcıya gerçekten ulaşanlardaki farktır, çoğunlukla sağlayıcının önek önbelleğinden (artı bir miktar çıktı değişkenliği). İkisi toplamda toplam tasarrufu oluşturur.
Doğruluk, yayınlanmış bir cevabı olan sorular üzerinden ölçülür; sayısı değiştirilmiş varyantlar yalnızca katmanın başka bir sorunun cevabını asla geri vermediğini doğrulamaya yarar.
Garantiler, sayılmış
Katman hiçbir zaman bir araç çağrısını değiştirmedi
1.325 BFCL karşılaştırmasında, 6 modelde, 0.4.31 tarihinden bu yana 0 değiştirilmiş çağrı. Katman başarısız olursa (B'de A'da olmayan bir hata varsa), bu burada sayılmaz: “Testin bulduğu hatalar” altındadır.
0.4.31 tarihinden bu yana başka bir sorudan cevap yok
198 varyanttan 0 tanesi (aynı soru, başka bir sayıyla, dolayısıyla başka bir cevapla) başka bir sorunun cevabıyla sunuldu; 8 canlı model ve ölçülen tüm önbellek yapılandırmaları genelinde.
GSM8K test bölünmesinin tamamının çevrimdışı tekrarı: 5 önbellek yapılandırmasının her birinde, 5.813 istekte 0.
Katmanla ve katmansız aynı ret oranı
XSTest, 10 model ölçüldü: p = 0,05 altında A/B farkı yok (McNemar, eşleştirilmiş promptlar). Katman, 4.668 yanıtın metnini değiştirmeden teslim etti (0 değiştirilmiş).
| Model | Promptlar | Reddler, güvenli promptlar (A → B) | Reddler, güvensiz promptlar (A → B) | Sürüm · tarih |
|---|---|---|---|---|
openai/gpt-4o-mini | 450 | %5,2 → %5,2 (n = 250, p = 1,00) | %81,5 → %81,5 (n = 200, p = 1,00) | 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.4-mini | 441 | %11,0 → %9,8 (n = 245, p = 0,63) | %87,2 → %86,7 (n = 196, p = 1,00) | 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.5 | 120 | %6,3 → %4,7 (n = 64, p = 1,00) | %80,0 → %80,0 (n = 55, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
openai/gpt-5.6-sol | 199 | %2,7 → %2,7 (n = 111, p = 1,00) | %75,6 → %76,7 (n = 86, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
anthropic/claude-haiku-4-5 | 450 | %1,6 → %2,0 (n = 250, p = 1,00) | %42,5 → %42,5 (n = 200, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
anthropic/claude-opus-5-5 | 81 | — | %67,1 → %67,1 (n = 79, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
anthropic/claude-sonnet-5 | 264 | %2,7 → %2,0 (n = 147, p = 1,00) | %68,4 → %71,8 (n = 117, p = 0,34) | 0.4.31 · 29 Eyl 2026 |
anthropic/claude-sonnet-5-5 | 311 | %1,5 → %0,0 (n = 135, p = 0,50) | %64,3 → %65,3 (n = 98, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
google/gemini-3.1-pro-preview | 58 | %0,0 → %0,0 (n = 32, p = 1,00) | %80,8 → %84,6 (n = 26, p = 1,00) | 0.4.31 · 29 Eyl 2026 |
google/gemini-3.8-flash | 450 | %0,4 → %0,4 (n = 249, p = 1,00) | %67,8 → %66,8 (n = 199, p = 0,73) | 0.4.31 · 29 Eyl 2026 |
Tasarruf sağlamayan
Tekrar olmadan tasarruf ≈ %0 olur. Yine de yayınlıyoruz, çünkü trafiğiniz tekrarlanmıyorsa göreceğiniz şey budur.
MT-Bench, her soru için yepyeni bir katmanla iki turlu bir sohbettir: önbelleğin yeniden kullanabileceği hiçbir şey yoktur ve prompt neredeyse hiçbir zaman sağlayıcının bir öneki önbelleğe almak için gerektirdiği minimuma ulaşmaz. BFCL'de her araç çağrısı farklıdır. Bu iki bataryanın ölçtüğü şey, katmanın hiçbir şeyi kötüleştirmediğidir; geriye kalan maliyet farkı modelin çıktısındaki gürültüdür, katman değil.
| Batarya | Model | n | Ölçülen tasarruf [GA] | Yorum | Sürüm · tarih |
|---|---|---|---|---|---|
| BFCL | openai/gpt-4o-mini | 400 öğe | %0,1 [%0,0 – %0,3] | sıfırdan ayırt edilemez | 0.4.31 · 28 Eyl 2026 |
| BFCL | openai/gpt-5.4-mini | 400 öğe | -%0,2 [-%1,0 – %0,5] | sıfırdan ayırt edilemez | 0.4.31 · 28 Eyl 2026 |
| BFCL | anthropic/claude-haiku-4-5 | 48 öğe | %0,1 [%0,0 – %0,2] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| BFCL | anthropic/claude-sonnet-5 | 48 öğe | %1,5 [-%1,6 – %5,8] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| BFCL | google/gemini-3.1-pro-preview | 97 öğe | %4,8 [-%6,6 – %15,6] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| BFCL | google/gemini-3.8-flash | 324 öğe | -%10,7 [-%27,8 – %3,2] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| MT-Bench | openai/gpt-4o-mini | 80 soru | %3,3 [%0,8 – %6,0] | tasarruf · katmana atfedilemez | 0.4.31 · 28 Eyl 2026 |
| MT-Bench | openai/gpt-5.4-mini | 80 soru | -%3,5 [-%8,6 – %1,6] | sıfırdan ayırt edilemez · katmana atfedilemez | 0.4.31 · 28 Eyl 2026 |
| MT-Bench | openai/gpt-5.5 | 8 soru | %2,1 [-%4,4 – %9,7] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| MT-Bench | openai/gpt-5.6-sol | 13 soru | -%0,4 [-%21,2 – %13,5] | sıfırdan ayırt edilemez · katmana atfedilemez | 0.4.31 · 29 Eyl 2026 |
| MT-Bench | anthropic/claude-haiku-4-5 | 80 soru | -%2,6 [-%4,6 – -%0,9] | ek maliyet · katmana atfedilemez | 0.4.31 · 28 Eyl 2026 |
| MT-Bench | anthropic/claude-opus-5-5 | 18 soru | %1,1 [-%2,0 – %4,9] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
| MT-Bench | anthropic/claude-sonnet-5 | 23 soru | %1,7 [-%8,9 – %12,7] | sıfırdan ayırt edilemez | 0.4.31 · 28 Eyl 2026 |
| MT-Bench | anthropic/claude-sonnet-5-5 | 37 soru | -%0,8 [-%2,5 – %0,9] | sıfırdan ayırt edilemez | 0.4.31 · 29 Eyl 2026 |
Model ve bataryaya göre durum
Her hücre, katmanın en yüksek sürümündeki koşuyu gösterir. Bir model ölçülemediyse, boşluk bırakmak yerine nedenini söylüyoruz.
| Model | GSM8K | BFCL | XSTest | MT-Bench |
|---|---|---|---|---|
openai/gpt-4o-mini | ölçüldü · n = 200 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 400 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 450 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 80 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.4-mini | ölçüldü · n = 176 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 400 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 441 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 80 0.4.31 · 28 Eyl 2026 |
openai/gpt-5.5 | ölçüldü · n = 22 0.4.31 · 28 Eyl 2026 | ölçülmedi: harcama sınırı tükendi 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 120 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 8 0.4.31 · 29 Eyl 2026 |
openai/gpt-5.6-sol | ölçüldü · n = 32 0.4.31 · 28 Eyl 2026 | ölçülmedi: sağlayıcı her iki kolda da isteği reddetti 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 199 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 13 0.4.31 · 29 Eyl 2026 |
anthropic/claude-haiku-4-5 | ölçüldü · n = 116 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 48 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 450 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 80 0.4.31 · 28 Eyl 2026 |
anthropic/claude-opus-5-5 | ölçüldü · n = 32 0.4.31 · 28 Eyl 2026 | ölçülmedi: harcama sınırı tükendi 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 81 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 18 0.4.31 · 29 Eyl 2026 |
anthropic/claude-sonnet-5 | ölçüldü · n = 62 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 48 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 264 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 23 0.4.31 · 28 Eyl 2026 |
anthropic/claude-sonnet-5-5 | ölçüldü · n = 62 0.4.31 · 28 Eyl 2026 | ölçülmedi: harcama sınırı tükendi 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 311 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 37 0.4.31 · 29 Eyl 2026 |
google/gemini-3.1-pro-preview | katman başarısız oldu: istekler katmandan geçmedi 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 97 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 58 0.4.31 · 29 Eyl 2026 | ölçülmedi: sağlayıcı kotası tükendi 0.4.31 · 29 Eyl 2026 |
google/gemini-3.8-flash | katman başarısız oldu: istekler katmandan geçmedi 0.4.31 · 28 Eyl 2026 | ölçüldü · n = 324 0.4.31 · 29 Eyl 2026 | ölçüldü · n = 450 0.4.31 · 29 Eyl 2026 | katman başarısız oldu: istekler katmandan geçmedi 0.4.31 · 29 Eyl 2026 |
Testin bulduğu hatalar
Test iyi görünmek için değil, hataları siz bulmadan önce bulmak için var. Ortaya çıktıkları sürümle ve onları düzelten sürümle birlikte şunları buldu.
Kalibre edilmemiş anlamsal önbellek, başka bir sorunun cevabını sundu 0.4.30 → 0.4.31
Anlamsal önbellek kalibre edilmediğinde, başka bir sayıya sahip bir varyant (“three baskets”e karşı “two baskets”) orijinal sorunun cevabını alabiliyordu. GSM8K varyantları üzerinden sayıldı.
- 0.4.30 sürümünde bulundu: 111 üzerinden 15. gsm8k.json
- 0.4.31 sürümünde düzeltildi (#383).
- 0.4.31 sürümünde canlı olarak doğrulandı: 198 üzerinden 0.
Katman, bunu yapması için hiçbir sinyal olmadan araç kataloğunu kısalttı 0.4.30 → 0.4.31
Çok turlu konuşmalarda, hiçbir şey hangi araçların gereksiz olduğunu göstermese de B kolu A kolundan daha az araç gönderdi. BFCL çok turlu konuşmaları üzerinden sayıldı.
- 0.4.30 sürümünde bulundu: 20 üzerinden 20. bfcl.json
- 0.4.31 sürümünde düzeltildi (#382).
- 0.4.31 sürümünde canlı olarak doğrulandı: 83 üzerinden 0.
Metin olarak yazılan bazı reddler önbelleğe alındı 0.4.31 → 0.4.32
Modelin metin olarak yazdığı bir ret (API sinyali olmadan) önbelleğe alınabilir, tekrarlanabilir ve tasarruf olarak hesaba geçirilebilirdi. XSTest promptlarında sayıldı.
- 0.4.31 sürümünde bulundu: 2.824 üzerinden 39. xstest-0431-claude.jsonxstest-0431-gama-alta.jsonxstest-0431.json
- 0.4.32 sürümünde düzeltildi (#393, #401).
- 0.4.32 sürümünde canlı olarak yeniden ölçülmeyi bekliyor.
Bir Gemini içerik filtresi cevap olarak önbelleğe alındı 0.4.31 → 0.4.32
Gemini, filtresini kendi durdurma nedeniyle işaretler; katman bunu bir ret olarak tanımadığından, önbelleğe alıp tekrarlayabiliyordu. XSTest promptlarında sayıldı.
- 0.4.31 sürümünde bulundu: 508 üzerinden 6. xstest-0431-gama-alta.json
- 0.4.32 sürümünde düzeltildi (#402).
- 0.4.32 sürümünde canlı olarak yeniden ölçülmeyi bekliyor.
Gemini katmandan geçmiyordu 0.4.31 → 0.4.32
Katman, OpenAI API'sine özgü bir alanı uyumlu her uç noktaya gönderiyordu ve Gemini bunu reddediyor: B kolundaki her istek başarısız oluyordu. GSM8K isteklerinde sayıldı.
- 0.4.31 sürümünde bulundu: 504 üzerinden 504. gsm8k-0431-gama-alta.json
- 0.4.32 sürümünde düzeltildi (#402).
- 0.4.32 sürümünde canlı olarak yeniden ölçülmeyi bekliyor.
Gemini 3 ile araçlı ikinci tur başarısız oluyordu 0.4.31 → 0.4.32
Katman, Gemini 3'ün her araç çağrısında gerektirdiği düşünce imzasını geri döndürmüyordu, bu yüzden bir sonraki tur reddediliyordu. BFCL çok turlu devamları üzerinden sayıldı.
- 0.4.31 sürümünde bulundu: 50 üzerinden 50. bfcl-0431-gama-alta.json
- 0.4.32 sürümünde düzeltildi (#402).
- 0.4.32 sürümünde canlı olarak yeniden ölçülmeyi bekliyor.
Nasıl yeniden üretilir
Testin kodu henüz herkese açık değil; yöntem açık ve beş adıma sığıyor. Kendi sağlayıcı anahtarlarınızla testi tekrarlayabilir ve raporlarımızla rakam rakam karşılaştırabilirsiniz.
- Veri kümesi. Her herkese açık veri kümesini yukarıdaki tablodaki commit'te indirin ve kullanmadan önce her dosyanın sha256 değerini kontrol edin. Tutmuyorsa aynı veri kümesi değildir.
- Katman.
@bivelio/savings-layerpaketini npm'den raporun belirttiği sürümde kurun vedist/index.jsdosyasının sha256 değerini kontrol edin: her rapor kendi değerini içerir. - Prompt başına iki kol. A doğrudan sağlayıcıya gider; B aynı prompt'u, aynı modele ve aynı çıktı sınırıyla, varsayılan yapılandırmasıyla katman üzerinden gönderir. Gerçek trafikte olduğu gibi prompt'ların bir kısmı tekrarlanır ya da başka sözcüklerle yazılır ve A/B sırası kurayla belirlenir.
- Maliyeti sağlayıcı söyler. Sağlayıcının döndürdüğü
usagedeğerine göre her kolun faturasını yayımlanan fiyattan toplayın. Tasarruf, aralığıyla birlikte1 − maliyet B / maliyet Aolur. - Kalite, aynı çalıştırmada. İki kolun yanıtlarını aynı şekilde puanlayın (GSM8K'da kesin yanıt, BFCL'de araç çağrısı, XSTest'te ret olup olmadığı, MT-Bench'te bir hakem) ve aynı batarya ile sürümün JSON raporuyla karşılaştırın.
Raporlar
Her çalıştırma tasarımını, sınırlarını ve ölçülen her çağrıyı içeren bir JSON raporu bırakır: usage, kol başına maliyet ve yanıtın sınıflandırması. Raporlar bu web sitesinden sunulur.
Raporlar testin yazdığı gibi sunulur, tek bir istisnayla: ölçümü yapan kişinin ortamına ait veriler (disk yolları, e-posta adresleri) çıkarılır. XSTest için hiçbir yanıt metni yayımlanmaz, yalnızca sınıflandırması.
Bizi kendiniz ölçün
Bağımsız bir ölçüm bizimkinden daha değerlidir. Testin kodu henüz herkese açık değil: ölçümü tekrarlamak ya da katmanı kendi test düzeneğiniz veya kendi trafiğinizle ölçmek isterseniz bize yazın, bunun için gereken her şeyi verelim.
Bize şu adresten yazın: support@bivelio.com