Giter VIP home page Giter VIP logo

Comments (8)

uNetworkingAB avatar uNetworkingAB commented on June 15, 2024 1

EAGAIN is intended, ENOENT is not intended but probably part of libuv. You can try the same with the raw epoll and there shouldn't be any of those

from usockets.

uNetworkingAB avatar uNetworkingAB commented on June 15, 2024

I tested with raw epoll and it is clean. With libuv I get the same issues you post here. So looks like libuv is broken.

from usockets.

uNetworkingAB avatar uNetworkingAB commented on June 15, 2024

ENOENT op was EPOLL_CTL_MOD or EPOLL_CTL_DEL, and fd is not
registered with this epoll instance.

It doesn't have to be a bug, can just be inefficient use of epoll_ctl. As long as the error is not EBADF it doesn't have to be a bug. EBADF would definitely be a critical bug.

from usockets.

markg85 avatar markg85 commented on June 15, 2024

It doesn't have to be a bug, can just be inefficient use of epoll_ctl. As long as the error is not EBADF it doesn't have to be a bug. EBADF would definitely be a critical bug.

While that might be true, you probably know best as creator of this library. It might still be a thing affecting high performance. Your library is optimized so much for the best possible throughput that an inefficiency anywhere in the stack likely leads to a measurable performance regression.

Is there a runtime environment variable i can set to measure this without recompiling this all the way up to uWebSockets js? Just curious to know what the raw epoll version would do in tersm of req/sec.

from usockets.

uNetworkingAB avatar uNetworkingAB commented on June 15, 2024

It's libuv, nothing we can do about it

from usockets.

markg85 avatar markg85 commented on June 15, 2024

You ran it with raw epoll, right?
How?

from usockets.

uNetworkingAB avatar uNetworkingAB commented on June 15, 2024

Uwebsockets.js always runs with libuv because its the event loop of nodejs. The C++ lib itself defaults to raw epoll.

from usockets.

markg85 avatar markg85 commented on June 15, 2024

Ah, that makes sense! Thank you for explaining.

Feel free to do whatever you want with this issue. The way i see it there might be a bug somewhere. But you can also argue the bug is upstream in libuv. It's up to you.

from usockets.

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.