Ölçüm ivedi_api_test.py --only-bench --workers multiProcess|multiThread ile yapılır (Debug ajan, Python istemci, yerel ağ, 10.000 düz satırlık ve 1.000 satır x 2 KB blob'lu tablo, 20 eş zamanlı oturum). Bir kurulumu değerlendirirken bu sayılar ölçek verir:
| Ölçüm | multiProcess |
multiThread |
|---|---|---|
10.000 executePrepared INSERT, tek tek (JSON) |
4,32 s | 4,23 s |
1.000 blob'lu INSERT (writeBlob + executePrepared) |
0,98 s | 0,98 s |
| SELECT 10.000 düz satır, JSON, fetchSize 1000 | 0,33 s, 534 KB | 0,32 s, 534 KB |
| SELECT 10.000 düz satır, BSON, fetchSize 1000 | 0,34 s, 798 KB | 0,35 s, 798 KB |
| SELECT 1.000 satır x 2 KB blob, JSON, fetchSize 200 | 0,06 s, 2.688 KB | 0,06 s, 2.688 KB |
| SELECT 1.000 satır x 2 KB blob, BSON, fetchSize 200 | 0,04 s, 2.040 KB | 0,04 s, 2.040 KB |
| 20 eş zamanlı oturum (open + 3 sorgu + close) | toplam 3,27 s, open ort. 2,22 s | toplam 2,12 s, open ort. 1,33 s |
Okuma: BSON düz satırda JSON'dan büyüktür (satır dizisinin her öğesine anahtar, tip ve uzunluk yazar), yalnız ikili değer taşıyan sonuç kümelerinde küçüktür (base64 payı yoktur); süre farkı yoktur. Öndeğer JSON kalır, blob taşıyan sorgularda BSON seçilir. İki işçi modeli deyim başına aynı hızdadır: multiThread'de etkin bir WebSocket bağlantısı kendi iş parçacığında kalır ve ancak 200 ms çerçeve gelmezse park edilir; park edilen bağlantıyı dinleyici döngüsü 1 ms adımla yoklar. multiProcess'te oturum açmak daha pahalıdır (bağlantı başına bir işçi süreç); kısa, tek seferlik istekler için durumsuz POST /ivedi/execute ucu vardır, çok sayıda küçük yazma işi tek istekte toplanır (script, Array DML).