Source

extradoc / talk / pycon2012 / lightningtalk-tm.txt

Full commit





    Garbage Collection
    ------------------


    PascalCon 1982








    you call malloc()

    you don't need to call free()











    costly, so likely just for a
    fraction of the malloc()s









    open issues:

    integration is hard:

    pointers between GC-managed
    and explicitly-managed memory









    "solution": put everything
    in the GC-managed memory












    theoretical answer:
    horrible for performance
    (memory and speed)











    for the foreseeable future:
    just a solution of convenience

    not for real programmers








    real programmers can live with
    the mess of explicit memory
    management







    ...30 years later:
    
    PyCon 2012
    ----------










    Garbage Collection is automatic
    and everywhere


    (but was hard work to get right)










    we don't talk about Garbage Collection













    instead we talk about how to use
    multiple cores












    mess with locks, reentrant locks,
    semaphores, events, ...









    in Python we have the GIL

    but *also* the threading module













    i.e. also, if we want, the mess







    Transactional Memory
    --------------------













    promises to give multicore usage








    performance issues


         and


    hard integration issues:

    co-operation between transactional
    and non-transactional code, I/O, etc








    "solution": run everything in
    Transactional Memory








    your app answers to "events"
    (web requests, anything)

    we can run these events
    mostly in parallel

    we care for sync issues under the hood






    "solution"


    hard work, but likely worth
    removing the quotes :-)










    STM

    http://pypy.org/