La vitesse de résolution influence directement le débit d'une pipeline. Mais les temps observés varient selon le type de CAPTCHA, la région, la charge fournisseur, la latence réseau et la logique d'intégration de votre application. L'objectif de ce guide est de fournir une méthode de mesure reproductible, pas un classement universel.
Protocole de benchmark
Pour chaque type de CAPTCHA :
1. Soumettre la tâche à l'API du fournisseur
2. Démarrer le chrono à l'envoi
3. Interroger régulièrement jusqu’au résultat final
4. Enregistrer le temps total écoulé
5. Répéter sur un échantillon suffisant
6. Calculer médiane, P50, P90 et P99
Mesurez en bout-en-bout: latence réseau, mise en file, temps de résolution et livraison du résultat.
Tableau de mesure recommande
| Type | Fournisseur | Mediane | P90 | P99 | Echantillon | Notes |
|---|---|---|---|---|---|---|
| reCAPTCHA v2 | CaptchaAI | à mesurer | à mesurer | à mesurer | n | même région, même cadence de poll |
| reCAPTCHA v2 | Fournisseur B | à mesurer | à mesurer | à mesurer | n | même jeu de test |
| reCAPTCHA v3 | CaptchaAI | à mesurer | à mesurer | à mesurer | n | même action, même seuil |
| Turnstile | CaptchaAI | à mesurer | à mesurer | à mesurer | n | même page de test |
| GeeTest | CaptchaAI | à mesurer | à mesurer | à mesurer | n | même configuration |
Completez ce tableau avec vos propres mesures. Les chiffres externes ne remplacent pas vos observations.
Interpréter les percentiles
- La médiane represente le comportement central.
- Le P90 represente les ralentissements frequents.
- Le P99 represente les cas de pointe a couvrir en capacité.
Pour le dimensionnement, ne basez pas votre architecture sur la moyenne seule.
Script de mesure Python
import requests
import statistics
import time
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://ocr.captchaai.com"
def benchmark(method: str, runs: int = 10, **params):
times = []
for index in range(runs):
start = time.time()
submit = requests.post(
f"{BASE_URL}/in.php",
data={"key": API_KEY, "method": method, "json": 1, **params},
timeout=30,
)
submit.raise_for_status()
task_id = submit.json()["request"]
while True:
time.sleep(5)
poll = requests.get(
f"{BASE_URL}/res.php",
params={"key": API_KEY, "action": "get", "id": task_id, "json": 1},
timeout=30,
)
poll.raise_for_status()
payload = poll.json()
if payload["request"] != "CAPCHA_NOT_READY":
break
elapsed = time.time() - start
times.append(elapsed)
print(f"Run {index + 1}: {elapsed:.1f}s")
print(f"Mediane: {statistics.median(times):.1f}s")
return times
Planification de capacité
Utilisez une estimation simple:
resolutions_par_heure = 3600 / temps_median_mesure
capacite_totale = resolutions_par_heure * nombre_de_slots
Recalculez à chaque changement de région, de fournisseur, de captcha ou de charge.
FAQ
Quel fournisseur est le plus rapide?
Le plus utile est celui qui reste stable dans votre contexte. Mesurez avec votre trafic, vos pages et vos contraintes.
A quelle fréquence refaire le benchmark?
Au minimum chaque trimestre, et après toute modification d'infrastructure ou d'intégration.
Mesurez localement, comparez à protocole constant, puis decidez selon vos SLO.