Hacker Newsnew | past | comments | ask | show | jobs | submit | ayanamist's commentslogin

Network throughput and memory throughput are quite different.


I assume their network protocol benchmark meant to show how fast their protocol implementation is relative to others is not being bottlenecked on their network bandwidth because that would be positively idiotic.

Given the machine the benchmarks are running on has a 50 Gbps NIC, that would be double stupid since their bottleneck would then need to be the production side not producing enough data to show how fast their implementation is or bad network configuration doing the same.

And that all assumes they are not bypassing the NIC entirely since they are benchmarking the protocol implementation so the source of packets is largely irrelevant except for making sure they are not still in the cache after the producer synthesizes them.

Beyond that we look to memory bandwidth as a fundamental limiting factor on data shuffling from packets to the protocol client to attempt to bound the theoretical maximum throughput so we can see how far off a protocol implementation is from the theoretical maximum.


How tokio fs makes rust impl slower than java impl.


If you want a stable sort, you should always use https://pkg.go.dev/sort#SliceStable This PR only modifies Slice method which is declared as "is not guaranteed to be stable"


Go already randomizes the order of keys in map iterations to discourage relying on undefined behavior. It would be funny if they randomized the order of equal elements in what would otherwise be a stable algorithm for the same reason.


workspace of Go1.18 may solve your issues https://sebastian-holstein.de/post/2021-11-08-go-1.18-featur...



> "We only support static builds, if you need shared -> fix it yourself"

I think this is thecause and effect why below

> recently they removed builds support against Qt < 5.15.

Maintaining backward compatibility needs a lot of work, especially ".so dependency hell"


So linux people find that the model of windows iocp used is better?


Yes, and now things are going full circle and windows is adopting the ring model too.

https://windows-internals.com/i-o-rings-when-one-i-o-operati...


huh, interesting. As far as I can tell the main advantage this has over IOCP is that you can get one completion for multiple read requests.

Looks like they took a lot of the concepts from Winsock RIO and applied them to file I/O. Which is fascinating because with network traffic you can't predict packet boundaries and thus your I/O rate can be unpredictable. RIO helps you get the notification rate under control, which can help if your packet rate is very high.

With files, I would think you can control the rate at which you request data, as well as the memory you allocate for it.

The other thing it saves just like RIO is the overhead of locking/unlocking buffers by preregistering them. Is that the main reason for this API then ?

I would be very interested to hear from people who have actually run into limits with overlapped file reads and are therefore excited about IoRings


As a Linux person: Yes, and I have thought so for a long time.

This is why many of us are excited about io_uring.


I think it's long been understood that it's better for disk I/O. I'm not sure the consensus is as clear for sockets.


Yes.

Unfortunately Rust went the exact other way.


Now if they could allocate the memory for you when needed rather than having a bunch of buffers allocated when they aren't yet needed.


That's what IOSQE_BUFFER_SELECT is for.


Awesome. I didn't see that when people were describing how it works. Certainly better than the Windows version.


What is the problems? I have been doing this for one year without issues.


From https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-n...

Therefore, be sure to follow these two rules in order to avoid losing files, and/or corrupting your data:

DO store files in your Windows filesystem that you want to create/modify using Windows tools AND Linux tools

DO NOT create / modify Linux files from Windows apps, tools, scripts or consoles

Remember: There's a reason we gave the %localappdata%\lxss\ folder 'hidden' & 'system' attributes


That's talking about manipulating files in the LXSS filesystem from Windows tools. There's no problem with doing everything on your Windows mounts, assuming you don't mind everything getting +x.


Hey guy, what you found is DNS polution, which is applied for years and upgraded several times. The most recent upgrade increases polluted result from tens to thousands and introduced real ip pointing to real web sites.


I think this project is written behind closed doors.


Go is developed entirely in the open. I wrote Go's hpack and there are no other Go coworkers in my office.


But do you close your doors sometimes?


:)


I meaned to chrismoos/hpack but not your standard library.......


I think he meant that about chrismoos/hpack


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: