[-] MantisWaffle@lemmy.world 1 points 1 month ago

Feel free to elaborate.

[-] MantisWaffle@lemmy.world 2 points 4 months ago

Interesting, that's my experience with anesthesia.

[-] MantisWaffle@lemmy.world 2 points 6 months ago* (last edited 6 months ago)

https://m.youtube.com/watch?v=HFLW1853Abg&pp=ygUVdGlvbiBlbGVjdHJpYyBjb21wYW55 Show made songs for kids and taught spelling.

There was also a pbskids show with the same name https://www.pbslearningmedia.org/collection/the-electric-company/t/tec-full-episodes/

Which also had a tion song though I can't find the episode right now.

[-] MantisWaffle@lemmy.world 7 points 8 months ago

I disagree, Cargo is very simple and easy to use for developers. I agree, binaries are easier for end users. I'm surprised cargo run --release didn't work for you. What was the project and OS?

[-] MantisWaffle@lemmy.world 1 points 9 months ago

Because the kernel doesn’t like you spawning 100k threads.

Why do you say this?

Your RAM doesn’t, either

Not if your stacks per thread are small.

Even all the stacks aside, the kernel needs to record everything in data structures which now are bigger and need longer to traverse.

These data structures must exist either in userland or the kernel. Moving them to the kernel won't help anything. Also, many of these data structures scale at log(n). Splitting have the elements to userland and keeping the other half gives you two structures with log(n/2) so 2log(n/2) = log(n^2/4). Clearly that's worse.

Each thread is a process which could e.g. be sent a signal, requiring keeping stuff around that rust definitely doesn’t keep around (async functions get compiled to tight state machines).

If signals were the reason async worked better, then the correct solution is to enable threads that opt-out of signals. Anything that slows down threads that isn't present in an async design should be opt-out-able. The state-machines that async compiles to, do not appear inherently superior to multiple less stateful threads managed by a fast scheduler.

Specifically with io_uring: You can fire off quite a number of requests, not incurring a context switch ...

As described here you would still need to do a switch to kernel mode and back for the syscalls. The extra work required from assuming processes are hostile to each other should be easy to avoid among threads known to have a common process as they are obviously not hostile to each other and share memory space anyway. The synchronization required to handle multiple tasks should be the same regardless if they are being run on the same thread by a user land scheduler or if they are running on multiple threads with an os scheduler.

Anyhow, your mode of inquiry is fundamentally wrong in the first place: ...

I'm not interested in saying that async is the best because it appears to work well currently. That's not the right way to decide the future of how to do things. That's just a statement of how things are. I agree, if your only goal is get the fastest thing now with no critical thought, then it does appear that async is faster. I am unconvinced it must fundamentally be the case.

[-] MantisWaffle@lemmy.world 1 points 9 months ago* (last edited 9 months ago)

You cant say async is the fundamentally better model because threading is purposely crippled in the browser.

The conversation at hand is not "how do io in browser". Its "async is not inherently better than threads"

[-] MantisWaffle@lemmy.world 2 points 9 months ago* (last edited 9 months ago)

I assume by performance you mean CPU usage per io request. Each io call should require a switch to the kernel and back. When you do blocking io the switch back is delayed(switch to other threads while waiting), but not more taxing. How could it be possible for there to be a difference?

[-] MantisWaffle@lemmy.world 4 points 10 months ago

Probably not for ddos/security reasons. Would need to use something like nohasher to get noops.

[-] MantisWaffle@lemmy.world 2 points 1 year ago* (last edited 1 year ago)

I've had no problem for years.

Biggest issue I've had was forgetting I committed something on one device before committing on another. Then I had two branches where one had " conflict" in the name. I just deleted all conflict files and everything continued as normal. If your repo is never corrupted before syncing worst case you should be able to find and delete all conflict files.

Syncthing conflicts include the source of the conflict so you could just choose to delete all files whose conflict is from one device and leave everything from the other.

If you're worried you could just ignore your '.git' folder in syncthing since you're purposefully not committing during this. Then sync through git when you finally commit your changes on a device.

[-] MantisWaffle@lemmy.world 1 points 1 year ago

If only there was some syncing thing that would let you move arbitrary files between devices.

https://github.com/syncthing

[-] MantisWaffle@lemmy.world 9 points 1 year ago

GrapheneOS has had better compatibility with sanboxed google services for a while now. Microg is worse.

[-] MantisWaffle@lemmy.world 2 points 1 year ago* (last edited 1 year ago)

Did you measure that empirically? Gsam indicates it only accounts around 1% of battery drain.

view more: next ›

MantisWaffle

joined 1 year ago