[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pypy-dev
Subject:    Re: [pypy-dev] Great experience with PyPy
From:       Gelin Yan <dynamicgl () gmail ! com>
Date:       2013-02-07 16:00:58
Message-ID: CABkOF6TVTLE-Y-fF2E3uFeWj7A+__MK4WF0D238V=RKanEMYZw () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


On Thu, Feb 7, 2013 at 11:28 PM, Костя Лопухин
<konstantin.lopuhin@chtd.ru>wrote:

> PyPy supports postgres with either psycopg2cffi or psycopg2-ctypes
> bindings. We use psycopg2cffi in production (and maintain them), and
> here http://chtd.ru/blog/bystraya-rabota-s-postgres-pod-pypy/?lang=en
> are some benchmarks.
> And yes, PyPy is cool :) Typically giving 3x speedups, and some memory
> savings sometimes.
>
> 2013/2/7 Gelin Yan <dynamicgl@gmail.com>:
> >
> >
> > On Thu, Feb 7, 2013 at 10:11 PM, Phyo Arkar <phyo.arkarlwin@gmail.com>
> > wrote:
> >>
> >> Pypy should have a page for "Success Stories!"
> >>
> >> Now with this and Quora proving Power of PyPy , i am beginning to start
> >> converting my projects into PyPy soon!
> >> I am only withholding right now because my projects uses a lot of C
> >> Libraries and Numpy/Matplotlib/scilit-learn.
> >>
> >> Thanks
> >>
> >> Phyo.
> >>
> >> On Thursday, February 7, 2013, Maciej Fijalkowski wrote:
> >>>
> >>> On Thu, Feb 7, 2013 at 1:55 PM, Marko Tasic <mtasic85@gmail.com>
> wrote:
> >>> > Hi,
> >>> >
> >>> > I would like to share short story with you and share what we have
> >>> > accomplished with PyPy and its friends so far.
> >>> >
> >>> > Company that I have worked for last 7 months (intentionally unnamed)
> >>> > gave me absolute permission to pick up technologies on which we based
> >>> > our solution. What we do is: crawl for PDFs and newspapers articles,
> >>> > download, translate them if needed, OCR if needed, do extensive
> >>> > analysis of downloaded PDFs and articles, store them in more
> organized
> >>> > structures for faster querying, search for them and generate bunch of
> >>> > complex reports.
> >>> >
> >>> > From very beginning I decided to go with PyPy no matter what. What we
> >>> > picked is following:
> >>> > * Flask for web framework, and few of its extensions such as
> >>> > Flask-Login, Flask-Principal, Flask-WTF, Flask-Mail, etc.
> >>> > * Cassandra as database because of its features and great experience
> >>> > with it. PyCassa is used as client to talk to Cassandra server.
> >>> > * ElasticSearch as distributed search engine, and its client library
> >>> > pyes.
> >>> > * Whoosh as search engine, but with some modifications to support
> >>> > Cassandra as storage and distributed locking.
> >>> > * Redis, and its client library redis-py, for caching and to speed up
> >>> > common auto-completion patterns.
> >>> > * ZooKeeper, and its client library Kazoo, for distributed locking
> >>> > which plays essential role in system for transaction-like behavior
> >>> > over many services at once.
> >>> > * Celery in conjunction with RabbitMQ for task distribution.
> >>> > * Sentry for error logging.
> >>> >
> >>> > What we have developed on our own are wrappers and clients for:
> >>> > * Moses which is language translator
> >>> > * Tesseract which is OCR engine
> >>> > * Cassandra store for Whoosh
> >>> > * wkhtmltopdf and wkhtmltoimage which are used for conversion of HTML
> >>> > to PDF/Image
> >>> > * etc
> >>> >
> >>> > Now when product is finished and in final testing phase, I can say
> >>> > that we did not regret because we used PyPy and stack around it.
> >>> > Typical speed improvement is 2x-3x over CPython in our case, but
> >>> > anyway we are mostly IO and memory bound, expect for Celery workers
> >>> > where we do analysis which are again many small CPU intensive tasks
> >>> > that are exchanged via RabbitMQ. Another reason why we don't see
> >>> > speedup us is that we are dependent on external software (servers)
> >>> > written in Erlang and Java.
> >>> >
> >>> > I'm already planing to do Cassandra (distributed key/value only
> >>> > database without index features), ZooKeeper, Redis and ElasticSearch
> >>> > ports in Python for next projects, and hopefully opensource them.
> >>> >
> >>> > Regards,
> >>> > Marko Tasic
> >>> > _______________________________________________
> >>> > pypy-dev mailing list
> >>> > pypy-dev@python.org
> >>> > http://mail.python.org/mailman/listinfo/pypy-dev
> >>>
> >>> Awesome!
> >>>
> >>> I'm glad people can make pypy work for non-trivial tasks which require
> >>> a lot of dependencies. We're trying to lower the bar, however it takes
> >>> time.
> >>>
> >>> Cheers,
> >>> fijal
> >>> _______________________________________________
> >>> pypy-dev mailing list
> >>> pypy-dev@python.org
> >>> http://mail.python.org/mailman/listinfo/pypy-dev
> >>
> >>
> >> _______________________________________________
> >> pypy-dev mailing list
> >> pypy-dev@python.org
> >> http://mail.python.org/mailman/listinfo/pypy-dev
> >>
> >
> >
> > Hi, It might be off topic. I want to know whether pypy support postgres.
> The
> > last time I noticed ctypes based psycopg2 was still beta. I mainly use
> > twisted & postgres. pypy supports twisted well but not good for psycopg2.
> >
> > Regards
> >
> > gelin yan
> >
> > _______________________________________________
> > pypy-dev mailing list
> > pypy-dev@python.org
> > http://mail.python.org/mailman/listinfo/pypy-dev
> >
>
>
>
> --
> Константин Лопухин, разра отчик
> Компания ЧТД -- http://chtd.ru
> +7 (495) 646-87-45, до авочный 333
>

Hi

   Glad to hear that. I will give it a try. By the way, Can i use it on
windows? It looks like cffi support windows.

Regards

gelin yan

[Attachment #5 (text/html)]

<br><br><div class="gmail_quote">On Thu, Feb 7, 2013 at 11:28 PM, Костя Лопухин <span \
dir="ltr">&lt;<a href="mailto:konstantin.lopuhin@chtd.ru" \
target="_blank">konstantin.lopuhin@chtd.ru</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"> PyPy supports postgres with either psycopg2cffi or \
psycopg2-ctypes<br> bindings. We use psycopg2cffi in production (and maintain them), \
and<br> here <a href="http://chtd.ru/blog/bystraya-rabota-s-postgres-pod-pypy/?lang=en" \
target="_blank">http://chtd.ru/blog/bystraya-rabota-s-postgres-pod-pypy/?lang=en</a><br>
 are some benchmarks.<br>
And yes, PyPy is cool :) Typically giving 3x speedups, and some memory<br>
savings sometimes.<br>
<br>
2013/2/7 Gelin Yan &lt;<a \
href="mailto:dynamicgl@gmail.com">dynamicgl@gmail.com</a>&gt;:<br> <div><div \
class="h5">&gt;<br> &gt;<br>
&gt; On Thu, Feb 7, 2013 at 10:11 PM, Phyo Arkar &lt;<a \
href="mailto:phyo.arkarlwin@gmail.com">phyo.arkarlwin@gmail.com</a>&gt;<br> &gt; \
wrote:<br> &gt;&gt;<br>
&gt;&gt; Pypy should have a page for &quot;Success Stories!&quot;<br>
&gt;&gt;<br>
&gt;&gt; Now with this and Quora proving Power of PyPy , i am beginning to start<br>
&gt;&gt; converting my projects into PyPy soon!<br>
&gt;&gt; I am only withholding right now because my projects uses a lot of C<br>
&gt;&gt; Libraries and Numpy/Matplotlib/scilit-learn.<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt;<br>
&gt;&gt; Phyo.<br>
&gt;&gt;<br>
&gt;&gt; On Thursday, February 7, 2013, Maciej Fijalkowski wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Feb 7, 2013 at 1:55 PM, Marko Tasic &lt;<a \
href="mailto:mtasic85@gmail.com">mtasic85@gmail.com</a>&gt; wrote:<br> &gt;&gt;&gt; \
&gt; Hi,<br> &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I would like to share short story with you and share what we \
have<br> &gt;&gt;&gt; &gt; accomplished with PyPy and its friends so far.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Company that I have worked for last 7 months (intentionally \
unnamed)<br> &gt;&gt;&gt; &gt; gave me absolute permission to pick up technologies on \
which we based<br> &gt;&gt;&gt; &gt; our solution. What we do is: crawl for PDFs and \
newspapers articles,<br> &gt;&gt;&gt; &gt; download, translate them if needed, OCR if \
needed, do extensive<br> &gt;&gt;&gt; &gt; analysis of downloaded PDFs and articles, \
store them in more organized<br> &gt;&gt;&gt; &gt; structures for faster querying, \
search for them and generate bunch of<br> &gt;&gt;&gt; &gt; complex reports.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; From very beginning I decided to go with PyPy no matter what. What \
we<br> &gt;&gt;&gt; &gt; picked is following:<br>
&gt;&gt;&gt; &gt; * Flask for web framework, and few of its extensions such as<br>
&gt;&gt;&gt; &gt; Flask-Login, Flask-Principal, Flask-WTF, Flask-Mail, etc.<br>
&gt;&gt;&gt; &gt; * Cassandra as database because of its features and great \
experience<br> &gt;&gt;&gt; &gt; with it. PyCassa is used as client to talk to \
Cassandra server.<br> &gt;&gt;&gt; &gt; * ElasticSearch as distributed search engine, \
and its client library<br> &gt;&gt;&gt; &gt; pyes.<br>
&gt;&gt;&gt; &gt; * Whoosh as search engine, but with some modifications to \
support<br> &gt;&gt;&gt; &gt; Cassandra as storage and distributed locking.<br>
&gt;&gt;&gt; &gt; * Redis, and its client library redis-py, for caching and to speed \
up<br> &gt;&gt;&gt; &gt; common auto-completion patterns.<br>
&gt;&gt;&gt; &gt; * ZooKeeper, and its client library Kazoo, for distributed \
locking<br> &gt;&gt;&gt; &gt; which plays essential role in system for \
transaction-like behavior<br> &gt;&gt;&gt; &gt; over many services at once.<br>
&gt;&gt;&gt; &gt; * Celery in conjunction with RabbitMQ for task distribution.<br>
&gt;&gt;&gt; &gt; * Sentry for error logging.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; What we have developed on our own are wrappers and clients for:<br>
&gt;&gt;&gt; &gt; * Moses which is language translator<br>
&gt;&gt;&gt; &gt; * Tesseract which is OCR engine<br>
&gt;&gt;&gt; &gt; * Cassandra store for Whoosh<br>
&gt;&gt;&gt; &gt; * wkhtmltopdf and wkhtmltoimage which are used for conversion of \
HTML<br> &gt;&gt;&gt; &gt; to PDF/Image<br>
&gt;&gt;&gt; &gt; * etc<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Now when product is finished and in final testing phase, I can \
say<br> &gt;&gt;&gt; &gt; that we did not regret because we used PyPy and stack \
around it.<br> &gt;&gt;&gt; &gt; Typical speed improvement is 2x-3x over CPython in \
our case, but<br> &gt;&gt;&gt; &gt; anyway we are mostly IO and memory bound, expect \
for Celery workers<br> &gt;&gt;&gt; &gt; where we do analysis which are again many \
small CPU intensive tasks<br> &gt;&gt;&gt; &gt; that are exchanged via RabbitMQ. \
Another reason why we don&#39;t see<br> &gt;&gt;&gt; &gt; speedup us is that we are \
dependent on external software (servers)<br> &gt;&gt;&gt; &gt; written in Erlang and \
Java.<br> &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I&#39;m already planing to do Cassandra (distributed key/value \
only<br> &gt;&gt;&gt; &gt; database without index features), ZooKeeper, Redis and \
ElasticSearch<br> &gt;&gt;&gt; &gt; ports in Python for next projects, and hopefully \
opensource them.<br> &gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt; &gt; Marko Tasic<br>
&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt; pypy-dev mailing list<br>
&gt;&gt;&gt; &gt; <a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a><br>
&gt;&gt;&gt; &gt; <a href="http://mail.python.org/mailman/listinfo/pypy-dev" \
target="_blank">http://mail.python.org/mailman/listinfo/pypy-dev</a><br> \
&gt;&gt;&gt;<br> &gt;&gt;&gt; Awesome!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;m glad people can make pypy work for non-trivial tasks which \
require<br> &gt;&gt;&gt; a lot of dependencies. We&#39;re trying to lower the bar, \
however it takes<br> &gt;&gt;&gt; time.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt; fijal<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; pypy-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a><br>
&gt;&gt;&gt; <a href="http://mail.python.org/mailman/listinfo/pypy-dev" \
target="_blank">http://mail.python.org/mailman/listinfo/pypy-dev</a><br> &gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; pypy-dev mailing list<br>
&gt;&gt; <a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a><br>
&gt;&gt; <a href="http://mail.python.org/mailman/listinfo/pypy-dev" \
target="_blank">http://mail.python.org/mailman/listinfo/pypy-dev</a><br> &gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hi, It might be off topic. I want to know whether pypy support postgres. The<br>
&gt; last time I noticed ctypes based psycopg2 was still beta. I mainly use<br>
&gt; twisted &amp; postgres. pypy supports twisted well but not good for \
psycopg2.<br> &gt;<br>
&gt; Regards<br>
&gt;<br>
&gt; gelin yan<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; pypy-dev mailing list<br>
&gt; <a href="mailto:pypy-dev@python.org">pypy-dev@python.org</a><br>
&gt; <a href="http://mail.python.org/mailman/listinfo/pypy-dev" \
target="_blank">http://mail.python.org/mailman/listinfo/pypy-dev</a><br> &gt;<br>
<br>
<br>
<br>
</div></div>--<br>
Константин Лопухин, разра отчик<br>
Компания ЧТД -- <a href="http://chtd.ru" target="_blank">http://chtd.ru</a><br>
<a href="tel:%2B7%20%28495%29%20646-87-45" value="+74956468745">+7 (495) \
646-87-45</a>, до авочный 333<br> \
</blockquote></div><br><div>Hi</div><div>  </div><div>   Glad to hear that. I will \
give it a try. By the way, Can i use it on windows? It looks like cffi support \
windows.</div><div><br></div><div>Regards</div><div><br></div> <div>gelin yan</div>



_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic