OK
AJAX error!

Les forumsGrammalecte[CLI-Python] Temps de correction

[CLI-Python] Temps de correction

Bonjour,

J'ai remarquer que le temps de correction du client est beaucoup plus long que la version serveur.

Client -> moyenne de 1523ms
serveur -> moyenne de 205ms

je me demandais, qu'elle est la différence qui cause une si grande différence entre les deux.
De plus, j'aimerais savoir si il serait possible de réduire le temps de réponse du client.

Merci.
le 13 juin 2018 à 19:21
Voici le script python que j'ai utilisé pour comparer le client au server :


import grammalecte
import sys

if len(sys.argv) > 1 :
oGrammarChecker = grammalecte.GrammarChecker("fr")
gce = oGrammarChecker.getGCEngine()

json = oGrammarChecker.generateParagraphAsJSON(0,sys.argv[1], bEmptyIfNoErrors=True)
print(json)

le 13 juin 2018 à 19:25
Bonjour,

Je ne vois aucune raison particulière qui rende le serveur plus rapide que la CLI.
Sauf que… si vous relancez la CLI à chaque fois que vous en avez besoin, alors vous perdez effectivement un temps considérable, puisque la première chose que fait le correcteur grammatical, c’est de compiler des milliers d’expressions régulières, afin d’aller plus vite par la suite.
Autrement dit, la première demande est toujours plus longue à répondre que les autres. Ensuite, toutes les autres requêtes bénéficient du résultat de cette compilation et vont plus vite.
Mais Grammalecte recompile des milliers de regex à chaque fois que vous relancez la CLI, tandis que j’imagine que vous ne vous embêtez pas à relancer le serveur à chaque fois que vous lui demandez quelque chose.

La différence vient probablement de là.
le 13 juin 2018 à 20:45
Oui j'ai remarqué que la première demande est toujours plus longue et cela se reflète très bien dans mes résultats. De plus, je ne relance pas la CLI à chaque fois, on le vois bien car la première demande de mon CLI est bien plus longue.

Échantillon de mes résultats :

---------------------------------------------------
Server
---------------------------------------------------
CallNb -> 1 Time -> 547 ms
CallNb -> 2 Time -> 125 ms
CallNb -> 3 Time -> 123 ms
CallNb -> 4 Time -> 131 ms
CallNb -> 5 Time -> 120 ms
---------------------------------------------------
TotalNbOfCall -> 5| TimeMean -> 209 ms
---------------------------------------------------
---------------------------------------------------
CLI
---------------------------------------------------
CallNb -> 1 Time -> 2139 ms
CallNb -> 2 Time -> 1387 ms
CallNb -> 3 Time -> 1383 ms
CallNb -> 4 Time -> 1373 ms
CallNb -> 5 Time -> 1390 ms
---------------------------------------------------
TotalNbOfCall -> 5| TimeMean -> 1534 ms
---------------------------------------------------

le 13 juin 2018 à 21:24
Même quand je le fait manuellement, je remarque que le serveur est beaucoup plus performant. Pourtant j'ai vérifié le script des deux et il sont semblable, la logique ne diffère pas.

Merci de votre aide.
le 13 juin 2018 à 21:29
Dans ce cas, la différence de vitesse vient peut-être du fait que Bottle utilise des threads. Ça fait peut-être une différence.
Ça n’a peut-être aucun rapport, mais la première fois que j’ai porté Grammalecte en JavaScript pour Firefox, j’ai constaté que le script tournait 20 fois plus vite dans un worker dédié que dans le processus principal… Il y a peut-être un effet similaire en Python.
Mais je ne sais pas vraiment comment fonctionne Bottle.
le 13 juin 2018 à 21:52
Après avoir essayé plusieurs solutions, je me suis rendu compte je faisait l'équivalent de relancer le CLI à chaque fois.
Le problème est maintenant réglé, le temps de réponse est de 0 ms sauf le premier.

Merci.

le 14 juin 2018 à 21:59

Notification par e-mail    1