Sorry but I realised that the actual bottleneck is with "range" (and
enumeration is slower in py3.)
https://stackoverflow.com/questions/23453133/is-there-a-reason-python-3-enumerates-slower-than-python-2.So
it's not fair to say that  multiprocessing is slow...


On Sat, Aug 12, 2017 at 4:37 AM, Bhavishya <bhavishyagop...@gmail.com>
wrote:

> Hello,
>
> WHY-> Presently there are no benchmarks for concurrency,
>
> METHOD USED-> This s
> <https://gist.github.com/bhavishyagopesh/76529e7bf170948b4d3f3a51f6e6bc9a>cript
> tries to benchmark "Concurrency" implemented using threading and
> multiprocessing module.Actually "threads" in cpython are restricted by
> "GIL",so it's not actually concurrent...On the other hand "multiprocessing"
> module creates whole different processes but there is substaintial cost
> involved in spawing a whole new process.
> So the there is a trade-off involved which is evident as we increase
> "CRUNCH_NO" variable.
>
> ToNote-> Interestingly Here py2 looks faster.(actually by a considerable
> margin)
> I'm attaching graphs that compare py2 and py3.
>
> IMPROVEMENTS-> More use cases(apart from number crunching)which could
> verify this and reproduce similar thing.
>
> SO Suggestions required?
>
> thank you.
>
>
> On Fri, Aug 11, 2017 at 4:09 AM, Victor Stinner <victor.stin...@gmail.com>
> wrote:
>
>> I don't understand what you are trying to test. For example, for a
>> lock, it's very different if a single thread uses the lock, or if two
>> threads use the lock. None of your benchmarks seem to measure
>> concurrency.
>>
>> Victor
>>
>> 2017-08-11 0:33 GMT+02:00 Bhavishya <bhavishyagop...@gmail.com>:
>> > Hello,
>> >
>> > I as a part of my gsoc project(and on suggestion from my mentor )tried
>> > writing a bencmark for threading module.
>> >  It uses "perf" to measure crearion of objects like
>> Thread,Semaphore,Locks
>> > etc. and few methods on them but It might lack on experience and the
>> > correctness of doing so.
>> >
>> > Here's the bm .
>> >
>> > And here are the results of a run on my local machine [specs]:
>> >
>> >
>> > python3 bm_threading.py
>> > .....................
>> > basic: Mean +- std dev: 14.4 us +- 0.4 us
>> > .....................
>> > condition: Mean +- std dev: 18.1 ns +- 1.1 ns
>> > .....................
>> > lock: Mean +- std dev: 18.1 ns +- 0.9 ns
>> > .....................
>> > rlock: Mean +- std dev: 19.4 ns +- 1.6 ns
>> > .....................
>> > semaphore: Mean +- std dev: 298 ns +- 56 ns
>> > .....................
>> > timer: Mean +- std dev: 6.74 us +- 0.65 us
>> >
>> >
>> >
>> > python2 bm_threading.py
>> > .....................
>> > basic: Mean +- std dev: 20.5 us +- 1.1 us
>> > .....................
>> > condition: Mean +- std dev: 148 ns +- 2 ns
>> > .....................
>> > lock: Mean +- std dev: 21.1 ns +- 0.7 ns
>> > .....................
>> > rlock: Mean +- std dev: 151 ns +- 3 ns
>> > .....................
>> > semaphore: Mean +- std dev: 336 ns +- 4 ns
>> > .....................
>> > timer: Mean +- std dev: 12.5 us +- 0.7 us
>> >
>> > So suggestions?
>> >
>> > Thank You
>> >
>> > _______________________________________________
>> > Speed mailing list
>> > Speed@python.org
>> > https://mail.python.org/mailman/listinfo/speed
>> >
>>
>
>
_______________________________________________
Speed mailing list
Speed@python.org
https://mail.python.org/mailman/listinfo/speed

Reply via email to