>
>
> Indeed.
>
> sage -t --long --warn-long 75.4 src/sage/rings/function_field/
> function_field.py
> **********************************************************************
> File "src/sage/rings/function_field/function_field.py", line 69, in sage.
> rings.function_field.function_field
> Warning, slow doctest:
> TestSuite(M).run() # long time (52s on sage.math, 2012)
> Test ran for 194.71 s
> [457 tests, 251.53 s]
> ----------------------------------------------------------------------
> All tests passed!
> ----------------------------------------------------------------------
> Total time for all tests: 251.7 seconds
> cpu time: 249.2 seconds
> cumulative wall time: 251.5 seconds
>
> No doctest should take more than 30 seconds, according to the developer
> guide. Hence these long tests should be deleted.
>
Has someone checked to see if there has been a serious performance
regression on that test over the past few beta versions?
However, I do not think we should remove the doctest. From looking at the
TestSuite run, the _test_derivation() took, by far, the longest amount of
time. So a good method going forward would be to skip that test (similar to
the following 2 doctests) and then run that specific test on a smaller set
of elements (some_elements() returns 58 of them, so that is 58^2 = 3364
over , maybe 4 or 5:
sage: %time M._test_derivation(elements=M.some_elements()[:5])
CPU times: user 2.3 s, sys: 24 ms, total: 2.32 s
Wall time: 2.26 s sage: S = M.some_elements()
sage: S = M.some_elements()
sage: %time M._test_derivation(elements=S[:5])
CPU times: user 1.32 s, sys: 12 ms, total: 1.34 s
Wall time: 1.29 s
>From looking at %prun, about 1/3 of the time is spent within the method
maps.py:217(_call_), which is accumulating the C/cython function calls, and
about half of the time is in
{method 'map_coefficients' of
'sage.rings.polynomial.polynomial_element.Polynomial' objects}
and subfunction calls. I would say a better solution would include
improving Polynomial.map_coefficients(). It probably would benefit from
more specialized implementations, specifically sparse and dense
implementations, as well as cythonization.
Best,
Travis
--
You received this message because you are subscribed to the Google Groups
"sage-release" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-release.
For more options, visit https://groups.google.com/d/optout.