Am 02.10.2013 20:26, schrieb Ondřej Čertík:
The reason is that to truly nail the speed, one needs to use special
dictionary implementation,
tweak hashing functions, reference counting, memory allocators etc.

Reference counting can improve latency, but it will actually decrease throughput.

At best, RC in C++ is faster than what Python does (which has a very crappy garbage collector). A good GC, such as what's available in Java, can beat any RC implementation hands down. Mostly because malloc() and free() do MUCH more work than most people think; it's not unheard of that allocation-intensive programs (and Sympy would certainly qualify) spend 20% of their time in memory management, and a mark-and-sweep collector, even a simplicistic one, simply has a much better throughput.

Besides speed, I came to appreciate having just one language and write
everything in it. Much simpler to maintain
and master.

Well sure, but that would be a case for setting up an entirely new SymC++ project, wouldn't it?

> With your sympy2cython approach, you need to master
Python, SymPy code, the sympy2cython
tool, Cython, C and Python C/API intricacies. That's a lot of layers.

Fully agreed that that would become a serious problem over time.
Also, it would deter contributors that don't  know all these layers.

--
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to