Performance of referencing library vs deprecated jsonschema.RefResolver is very bad when there are a lot of references in schema
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- performance
Direzione di ricerca
Riproduci il caso di validazione segnalato usando i dati di test e lo schema di plate-reader collegati, confrontando jsonschema 4.17.0 con 4.18.0. Inizia da tests/parsers/moldev_softmax_pro e dal suo runtime di 26 test, quindi segui il percorso di referenziamento e validazione per identificare la regressione. Il lavoro è concluso quando la causa è isolata e lo schema con riferimenti grandi non mostra più il rallentamento segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello!
I have a library that formats scientific data into a JSON schema called the Allotrope Standard Model (ASM)
The validation schemas are fairly large and complicated compared to other schemas I've seen in discussion boards, and are very modular, meaning there are a lot of references. In allotropy we store the ASM schemas directly, and remove all remote references, replacing them with local references under $defs.
We are finding that validating against the schemas using jsonschema version 4.18.0 takes ~20x longer than 4.17.0.
As a concrete example:
Validating this data: https://raw.githubusercontent.com/Benchling-Open-Source/allotropy/refs/heads/main/tests/parsers/moldev_softmax_pro/testdata/MD_SMP_luminescence_endpoint_example08.json
Against this schema: https://github.com/Benchling-Open-Source/allotropy/blob/main/src/allotropy/allotrope/schemas/adm/plate-reader/REC/2024/06/plate-reader.schema.json
takes ~3.5s on 4.17.0 and ~55s on 4.18.0
This translates to a runtime for all 26 tests in tests/parsers/moldev_softmax_pro of ~30s in 4.17.0 to ~6m in 4.18.0
- Lingua principale
- Python
- Stelle
- 53
- Fork
- 27
- Merge medio
- 1g 8h
- PR unite (30g)
- 8
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python-jsonschema/referencing
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
python-jsonschema/referencing#366 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
python-jsonschema/referencing#257 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
python-jsonschema/referencing#226 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
python-jsonschema/referencing#160 · 3 commenti · 2 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
python-jsonschema/referencing#119 · 4 commenti ·
Tutte le issue di python-jsonschema/referencing
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
anthropics/skills#1811 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
speaches-ai/speaches#678 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
datalayer/mcp-compose#42 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
UKGovernmentBEIS/inspect_evals#2523 ·