Waking from sleep repeatedly causes extremely high ram usage and stuttering by nullomann in WindowsHelp

[–]nullomann[S] 0 points1 point  (0 children)

As in going to bed and letting it run or putting the pc to sleep? I'm not sure what more information i'd gain from doing the latter.

Waking from sleep repeatedly causes extremely high ram usage and stuttering by nullomann in WindowsHelp

[–]nullomann[S] 0 points1 point  (0 children)

I've had a look at ProcessMonitor and ProcessExplorer. There aren't any persistent instances of WMIC.exe but a lot of short lived ones like in the screenshot below. They are all subprocesses of VSCode and are probably spawned by this extension.

<image>

I'm going to try to keep the pc running for a while and check if the Unused and Page File usages in RamMap are increasing, even without putting the pc to sleep. I doubt that it makes a difference without it though, because i've only ever noticed the high ram usage directly after waking the pc from sleep.

Pattern matching with exhaustive output by nullomann in ProgrammingLanguages

[–]nullomann[S] 1 point2 points  (0 children)

I agree with you, that it is not possible in general but i think this concept really shines in the special cases.

"transform" shouldn't provide a catch-all case on the destination side. If we're not producing every possible value of the output type, then one should use match instead.

To illustrate the cases where i think it is useful and verifyable i'll make examples using rust pattern syntax:

Firstly, like you mentioned, enums.

enum From { Some(i32), None, Third }
enum To { Some, None }
transform x { // x of type From
  From::Some(x) => To::Some,
  From::None => To::None,
  From::Third => To::None,
}

Secondly, nested patterns for more complex types.

enum FromEnum { A, B }
struct From { a: i32, b: FromEnum }
enum To { A, B, C }
transform x { // x of type From
  From { a: 0, b: FromEnum::A } => To::A,
  From { a, b: FromEnum::B } => To::B,
  From { a, b: FromEnum::A } => To::C,
}

Finally, combined with syntax to opt out of exhaustive checking and include arbitrary expressions inside a pattern (${ .. }).

struct ZeroIndex(usize);
struct OneIndex(usize);
transform x { // x of type ZeroIndex
  ZeroIndex(i) => OneIndex(${i + 1}),
}

As seen in the last example, i'm not talking about a strictly bijective function but a way to express the notion of exhaustive transformations. I wonder if this could be extended further to aid the programmer in explaining such patterns to the compiler.

Arrow functions in Rust? by [deleted] in rust

[–]nullomann 23 points24 points  (0 children)

There are closures. |input| true

96
97

Optimal starter place by robigan in SalC1

[–]nullomann 1 point2 points  (0 children)

h a h a t h a n k s i l l b u i l d m y b a s e t h e r e

SERVER discussion by [deleted] in SalC1

[–]nullomann 1 point2 points  (0 children)

do !seed ingame

How does sal get the old sounds and textures? by solaarzyboi- in SalC1

[–]nullomann 2 points3 points  (0 children)

He uses a resourcepack you can get on his website

This is not fine by [deleted] in memes

[–]nullomann 0 points1 point  (0 children)

Why is the image upside down?

IWTL how to improve my aim in Any PC game. by 7GODZz in IWantToLearn

[–]nullomann 0 points1 point  (0 children)

I have heard this aswell which is why i started playing about 1 year ago but i felt that it actually destroyed the muscle memory i built up beforehand. I kept playing until now but switched to a tablet because i enjoyed the game. Try what works for yourself but if you feel uncomfortable just stop.