Coder Social home page Coder Social logo

Comments (5)

mpiraux avatar mpiraux commented on July 25, 2024

I guess those tests are running on the loopback interface.
In the original PQUIC paper (available at pquic.org) we also report on performance benchmarks and provide explanation on the performance degradations. In short, plugins are eBPF bytecodes and thus are slower than native machine code. Also, injecting plugins add new functions and code paths to PQUIC, so the execution time increases.

That said, injecting plugins can be beneficial. FEC helps in lossy networks, such as SATCOM environments, but can be detrimental in good networks and Multipath can leverage several network paths. When running a test on the loopback, you are first likely to be CPU blocked rather than network blocked, and second losses are absent.

Regarding the injection of the datagram plugin. I am surprised to see a performance degradation as picoquicdemo does not use datagrams in any forms. I would expect that if you run the tests several time, you will not find a statistically meaningful difference. If you find one, it would be interesting to understand its origin.

from pquic.

mayankmclaren avatar mayankmclaren commented on July 25, 2024

I ran picoquicdemo with and without datagram plugin sending 100MB of data on loopback condition for 50 times. The average transmission time without the plugin injected was 9.223 seconds and with the plugin injected was 10.095 seconds.
I also observed that a few times the datagram plugin took time all the way up to 14.5 seconds.
I'm attaching the test data here: https://docs.google.com/spreadsheets/d/1vvfdTFZ0OX7mpczngmCTzWVM5NIoHRWBbzo1sjjm3wc/edit?usp=sharing

from pquic.

mayankmclaren avatar mayankmclaren commented on July 25, 2024

there's one more question that I want to ask.
On the server side at the end, it shows "Retrans= (some numeric value)". What does that signify? The number of times retransmission happened?

Screenshot from 2020-06-23 04-28-39
like here it's Retrans= 543

from pquic.

mpiraux avatar mpiraux commented on July 25, 2024

I think there is something odd with your test setup. I can transfer 1Gb in about a second on my machine loopback (disabling the logs with -l /dev/null), and the transfer does not report any retransmitted packet. Injecting the datagram plugin adds a fixed cost of reading a bunch of files and recompiling their code, but it does not add any instructions in the data path when using the picoquicdemo client and server.
I ran 20 tests side by side with and without the plugin and I did not find a meaningful difference. There is theoretically one, but a small one.

from pquic.

mpiraux avatar mpiraux commented on July 25, 2024

I am closing this as it seems that no further assistance is required.

from pquic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.