Hi again James,

Le 2017-12-14 à 04:44, James Chapman a écrit :
No, I'm saying you shouldn't need to make any kind of malloc calls manually. Python handles memory allocation and deallocation on your behalf.
All I did is installing a precompiled Python 2.7 build from the Debian repository. I believe it was built with pymalloc and debugging.
Why do you need to call pymalloc?
I have not yet took the time to manually compile Python without pymalloc.
Are you using ctypes?
No.

And if you are I presume this is then to make C-calls into a shared library?
I use Cython instead of ctypes. I'm guessing the memory leak was not caused by the Cython-generated C code, but from the uWSGI backend.

Cheers,

Etienne




--
James

On 13 December 2017 at 18:30, Etienne Robillard <tkad...@yandex.com <mailto:tkad...@yandex.com>> wrote:

    Hi James,

    Thank for your reply. Are you suggesting that under Linux the
    malloc() glibc library call is more memory efficient than using
    pymalloc?

    Best regards,

    Etienne


    Le 2017-12-13 à 12:27, James Chapman a écrit :
    Why pymalloc? I presume this means you're using ctypes which
    means I have more questions.

    If you're allocating your own blocks of memory then you need to
    free them too. IE, does each call to pymalloc have a
    corresponding call to pyfree?

    Is the overhead of pythons built in malloc really a problem?

    Are you changing pointers before you've freed the corresponding
    block of memory?

    There are many ways to create a memory leak, all of them
    eliminated by letting python handle your memory allocations.

    But, back to your original question, check out "valgrind".

    HTH

    --
    James

    On 6 December 2017 at 16:23, Etienne Robillard
    <tkad...@yandex.com <mailto:tkad...@yandex.com>> wrote:

        Hi Alan,

        Thanks for the reply. I use Debian 9 with 2G of RAM and
        precompiled Python 2.7 with pymalloc. I don't know if
        debugging was enabled for this build and whether I should
        enable it to allow memory profiling with guppy... My problem
        is that guppy won't show the heap stats for the uWSGI master
        process. However I have partially resolved this issue by
        enabling --reload-on-rss 200 for the uwsgi process. 
        Previously, the htop utility indicated a 42.7% rss memory
        usage for 2 uWSGI processes. I have restarted the worker
        processes with SIGINT signal. Now my uwsgi command line looks
        like:

        % uwsgi --reload-on-rss 200 --gevent 100 --socket
        localhost:8000 --with-file /path/to/file.uwsgi --threads 2
        --processes 4 --master --daemonize /var/log/uwsgi.log

        My framework is Django with django-hotsauce 0.8.2 and
        werkzeug. The web server is nginx using uWSGI with the gevent
        pooling handler.

        Etienne

        Le 2017-12-06 à 10:00, Alan Gauld via Tutor a écrit :

            On 06/12/17 09:21, Etienne Robillard wrote:

                Hi

                I think my wsgi application is leaking and I would
                like to debug it.

                What is the best way to profile memory usage in a
                running wsgi app?

            This is probably a bit advanced for the tutor list, you might
            get a better response on the main Python list.

            But to get a sensible answer you need to provide more data:
            What OS and Python version?
            What toolset/framework are you using?
            What measurements lead you to suspect a memory leak?



-- Etienne Robillard
        tkad...@yandex.com <mailto:tkad...@yandex.com>
        https://www.isotopesoftware.ca/ <https://www.isotopesoftware.ca/>

        _______________________________________________
        Tutor maillist  - Tutor@python.org <mailto:Tutor@python.org>
        To unsubscribe or change subscription options:
        https://mail.python.org/mailman/listinfo/tutor
        <https://mail.python.org/mailman/listinfo/tutor>



-- Etienne Robillard
    tkad...@yandex.com <mailto:tkad...@yandex.com>
    https://www.isotopesoftware.ca/ <https://www.isotopesoftware.ca/>



--
Etienne Robillard
tkad...@yandex.com
https://www.isotopesoftware.ca/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to