You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
apischema is already among the fastest (if not the fastest) of all competitor libraries. That's not enough.
Some libraries use code generation to optimize their performance, but it's out of question to do that, because it makes development a lot harder (and apischema has a lot more functionalities)
Dynamic code optimization (AST refactoring) has been tried this summer, and if the performance gain was noticeable (about 10%), the cost at runtime was too high (100% for (de)serialization method creation). This method has thus been abandoned.
Also, code compilation seemed to be impossible because apischema is built on closures/nested functions, which are not supported by Cython/Numba.
However, rewriting closures as methods — with all the captured variables as fields of the method class — allows to be supported by Cython/Numba.
The text was updated successfully, but these errors were encountered:
apischema is already among the fastest (if not the fastest) of all competitor libraries. That's not enough.
Some libraries use code generation to optimize their performance, but it's out of question to do that, because it makes development a lot harder (and apischema has a lot more functionalities)
Dynamic code optimization (AST refactoring) has been tried this summer, and if the performance gain was noticeable (about 10%), the cost at runtime was too high (100% for (de)serialization method creation). This method has thus been abandoned.
Also, code compilation seemed to be impossible because apischema is built on closures/nested functions, which are not supported by Cython/Numba.
However, rewriting closures as methods — with all the captured variables as fields of the method class — allows to be supported by Cython/Numba.
The text was updated successfully, but these errors were encountered: