Distributed self-replicating programs in Python
Go to file
David Wilson a18a083c94 issue #260: avoid start_transmit()/on_transmit()/stop_transmit()
Previous transmit sequence was:
        Router._async_route -> Stream._send -> Broker._start_transmit ->
        Broker.loop -> Stream.on_transmit -> socket.write ->
        Broker.stop_transmit

New sequence, when socket buffer can hold message is:
        Router._async_route -> Stream._send -> socket.write

bench/roundtrip.py
        Before: 240 usec
        after: 178 usec

Stat before:
       5088.276050      task-clock (msec)         #    0.997 CPUs utilized
           185,568      context-switches          #    0.036 M/sec
                 0      cpu-migrations            #    0.000 K/sec
            18,923      page-faults               #    0.004 M/sec
    13,063,871,501      cycles                    #    2.567 GHz
    12,834,579,684      instructions              #    0.98  insn per cycle
     2,669,820,684      branches                  #  524.700 M/sec
       107,296,033      branch-misses             #    4.02% of all branches

       5.105018296 seconds time elapsed

       2.350970000 seconds user
       0.345497000 seconds sys

Stat after:
       4019.208047      task-clock (msec)         #    0.998 CPUs utilized
           249,471      context-switches          #    0.062 M/sec
                 0      cpu-migrations            #    0.000 K/sec
            20,990      page-faults               #    0.005 M/sec
    10,312,535,979      cycles                    #    2.566 GHz
    11,586,365,995      instructions              #    1.12  insn per cycle
     2,392,933,370      branches                  #  595.374 M/sec
        75,432,205      branch-misses             #    3.15% of all branches

       4.028763347 seconds time elapsed

       3.367051000 seconds user
       0.652962000 seconds sys
2019-01-29 17:20:52 +00:00
.ci ci: Allow DISTROS="debian*32" variable, and KEEP=1 2019-01-29 07:57:59 +00:00
.github github: tweak issue template. 2019-01-22 06:31:01 +00:00
ansible_mitogen issue #499: respect C.BECOME_ALLOW_SAME_USER. 2019-01-29 02:53:21 +00:00
docs issue #429: update Changelog. 2019-01-29 06:01:48 +00:00
examples core: many docstring updates and an example substitute for Channel 2019-01-20 22:54:15 +00:00
mitogen issue #260: avoid start_transmit()/on_transmit()/stop_transmit() 2019-01-29 17:20:52 +00:00
scripts misc: rename to scripts. tab completion!! 2019-01-29 06:01:48 +00:00
tests issue #429: enable en_US locale to unbreak debops test. 2019-01-29 06:01:48 +00:00
.gitignore Add venvs/ to gitignore 2018-10-26 10:23:34 +01:00
.lgtm.yml compat: ignore LGTM checks on third party 2018-03-19 21:58:31 +05:45
.travis.yml issue #477: travis.yml typo. 2019-01-27 05:27:05 +00:00
LICENSE Add license text everywhere. 2018-03-19 21:58:28 +05:45
README.md Motivational shame badges back in README 2019-01-20 19:58:27 +00:00
dev_requirements.txt Split dev_requirements.txt up according to test mode. 2018-11-06 17:00:17 +00:00
preamble_size.py add --dump to preamble_size.py. 2018-08-18 16:44:00 +01:00
run_tests issue #477: add mitogen_py24 CI test type. 2019-01-26 22:00:30 +00:00
setup.cfg Ignore another annoying flake8 message. 2018-05-28 02:33:47 +01:00
setup.py Drop 'alpha' trove classifier 2019-01-25 22:02:56 +00:00
tox.ini Use develop mode in tox 2019-01-29 06:01:48 +00:00

README.md