[pypy-dev] CFFI speed results
Elefterios Stamatogiannakis
estama at gmail.com
Wed Dec 26 16:24:34 CET 2012
On 26/12/2012 12:48 μμ, Maciej Fijalkowski wrote:
> On Mon, Dec 17, 2012 at 10:42 PM, Maciej Fijalkowski <fijall at gmail.com> wrote:
>> On Mon, Dec 17, 2012 at 3:46 PM, Eleytherios Stamatogiannakis
>> <estama at gmail.com> wrote:
>>> We had a "bug" in our previous benchmark ("mspw_bench.sql"). The way it was
>>> written allowed SQLite to short-circuit column data retrieval, ending up
>>> with minimal exercising of the CFFI layer.
>>
>> I thought it was a feature :)
>
> Hi Elefterios.
>
> We've been working towards improving the situation of this benchmark.
> There is a branch done by antonio cuni and there are a few smaller
> things that will be improved in some time. Stay tuned.
>
> Cheers,
> fijal
>
Thank you for looking into this part of pypy's performance. Whenever
something reaches a testable state we would be glad to test/benchmark it.
On another front. We tried using SQLite's UTF-16 API to avoid doing the
conversion to UTF-8 whenever we returned a string from pypy to SQLite.
We used function "sqlite3_result_text16":
http://www.sqlite.org/c3ref/result_blob.html
defining it in CFFI as:
void sqlite3_result_text16(sqlite3_context*, wchar_t*, int, void(*)(void*));
The problem was that giving directly a pypy string to above function
(using wchar_t type), only the first character of the string was passed
to SQLite.
The only way to successfully pass a string to SQLite was by explicitly
converting/encoding it to utf-16.
So the question i have is, does pypy keep its strings internally to utf-16?
Thanks again (and a happy new year) to all.
l.
More information about the pypy-dev
mailing list