Microsoft doesn't understand FPS
1567 segments
Is there any possibility we could intro?
We could actually start.
Uh, anyways, sorry. Welcome to the
standup. Today we have an extremely
special episode for everybody that's
watching the standup. For those that
don't know, this is the world's most
attended standup.
>> Oh,
>> congratulations everyone for being a
part of it. I hope everybody has their
blockers. They're ready.
>> Yep. Thank you. Thank you.
>> Unfortunately, interns still unpaid.
Still unpaid. Still unpaid. The interns
are always unpaid. But you guys, the
things is that I love you with the love
of a CEO. Okay? I just want you to know
that right now.
>> We talk about valuable work experience
that someday could land you a paying
job, right? Someday.
>> Someday you guys will get paid. Just not
here.
>> Not today is not one of those days.
>> So go get some coffee.
>> Yeah. Now go give me some coffee. All
right. Now, today our very special
episode. It has to do Casey. I was
absolutely fascinated with some of the
tweets you were making because Windows
11 uh actually well to to be fair, we
got to back this up a little bit. Uh
about a couple months ago, Satia
released a note of intent saying that
Windows hears you. We are going to win
back the consumer is exactly what he
said. And the first major patch since
that announcement just came out. And
that exact patch contained a new and
improved Windows run dialogue. And so
this is a part of their major push to
make performance more top of mind. At
least that is what Windows 11 explicitly
said. And as part of their announcement,
they said this is the fastest that the
run dialogue has ever been. ever. Eve
Ver like this is the best it has ever
been. Here we go. And they announced it
and it takes approximately 90
milliseconds to show on screen on the
median. So the 50 percentile. So we
don't know what we don't know what like
the 25th percentile. We don't know the
quartiles here. So we have no idea
what's going on. But we do know that the
median is 90 approximately 90
milliseconds.
>> It was 94 I think might have been what
they said.
>> Yeah. I don't know how they measure
that. That seems really impressive
considering most displays don't, you
know, they're usually locked to some
number that probably doesn't land on 94
every time. I don't exactly know how
they're measuring that, but nonetheless,
that's what they're saying. Absolutely
impressed with this performance, but
then Casey, you did a little bit of
snooping.
>> I did. So, I actually didn't. Uh, so I
just I I really didn't. I I didn't care
because like I said, I don't use Windows
really like anymore. week. We kind of we
kind of nixed that. Uh pun intended. And
uh so like I'm just like it's a it's
kind of just a like all right you guys
you know you can do your rodeo now of
where you decide to try and make Windows
performant or whatever. That's fine. Um
but what I was going to say is
originally I only saw this because Tim
Sweeney was commenting on it. I think he
was said something snide like you know
it's he said it was 94 milliseconds for
this you know performance top of mind
rewrite it's like a gaming monitor's
like you know 8 milliseconds to refresh
a frame like what's go you know what's
going on um and so the only thing I
really did was just retweet I'm like
okay popping up the run dialogue like is
is like a drop to 10 fps right uh
because that's what you know it's like
11 fps I think would be if you rounded
94 milliseconds to be like it'd be, you
know, it' be like 10.6
frames a second or something if that's
was your run rate. And nobody cared
about the run dialogue for the most
part. Pretty much people just cared
about the fact that I used it FPS as a
way to like explain what the number was.
Now, remind you, I'm not posting
anything original here at all. I
literally just like here is the
screenshot of the thing that Tim Sweeney
posted or was replying to rather. Um,
and I'm just like and I highlighted it
and I was like they were like perf top
of mind 94 milliseconds and I was like
geez like that'd be really slow. Like 94
millconds is is a long time especially
because like when you think about what
the run dialogue is it's not really like
it's it's a user interface interaction.
Whoa. Hey, is that HTTP? Get that out of
here. That's not how we order coffee. We
order coffee via SSH terminal.shop.
Yeah. You want a real experience? You
want real coffee? You want awesome
subscriptions so you never have to
remember again? Oh, you want exclusive
blends with exclusive coffee and
exclusive content? Then check out CRON.
You don't know what SSH is?
>> Well, maybe the coffee is not for you.
in
the dream.
>> You hold on right there, Casey. There's
processes that they have to create.
>> I don't know what a process is, but
apparently it takes 90 milliseconds.
>> Yeah. So, this was this was the thing um
where they were like, uh, a lot of
people just had a problem with this. And
a lot of people's probably the wrong
term. Like most, you know, it was a very
popular tweet actually, so I suppose
most people didn't have a problem with
what I said. Um,
but for the people who did have a
problem with it, there were two things.
One is they were like, well, this is
like, you know, loading. It's like how
long something takes to load, which to
me is ridiculous because it's like, no,
it's like a text box and maybe some
history. There's no there shouldn't be
any loading. Like this should just be it
it's a trivial it's you're talking about
like 4K or something of data that should
be required to do this thing. like it's
so minimal that you there's no question
you shouldn't be launching a process for
this in my mind, right? Maybe if you
have some kind of weird process
isolation thing going on because you're
scared that someone's hacking your run
dialogue, but then at that point we
should talk about why that's happening
exactly and other things like that. But,
you know, there's a whole sort of thing.
So, you could come back with some blog
post where you explained like here's why
it has to be a process and maybe I'd be
like okay. But in general, no. like that
should not be if the user doesn't
perceive them to be loading something
then that's not really acceptable excuse
a so I didn't think anyone who replied
with that I don't think they have any
leg to stand on so I'm sorry like I just
completely disagree with you this is not
a load operation
but that was relatively minor that was I
felt like that was just as you as you
folks say and as the kids say that was
just cope that was just like trying to
come up with the number for the 94
>> that was some cope
>> y um
>> a little bit of cope and also launching
node so you can use react that's all
just a little bit The bigger the bigger
thing was um was they didn't like the
use of FPS.
Uh and this to me is like I can if you
if you don't want to use FPS as a way to
like talk about how things feel and how
long they take, right? That's totally
valid in my opinion. Meaning I would
never go to somebody who quoted
milliseconds and say, "Whoa, whoa, whoa,
son. You should be saying FPS. Like I
wouldn't do that because
>> in this house in this house we measure
with FPS.
>> Exactly. Like I would never I WOULD
NEVER DO THAT.
>> NO MILLISECONDS.
>> If I did that to somebody and they were
like, "Dude, I quote these things in
milliseconds. That's how I do it." I'd
be like, "Ah, sorry." Like I was just I
Yeah, I was being a dick. I I shouldn't
have done that or whatever. Right? Like
that. I would feel bad about that if I
did that. Right? Not so with these
people. These people are like, "You
cannot quote FPS numbers unless
apparently
um because some there's some like
internet committee that like must have
decided this FPS has to be average FPS."
>> Yes, it's it is. So, Casey, you may not
know this, but if in a video game in a
video game, if you fire a gun, but you
only fire it once
>> and it takes 90 milliseconds, that's
just part of that's just Hey, that's
just loading. It only counts if you
repetitively fire it. And I thought
people were mad though, Casey, because
>> the run thing is kind of like, you know,
Anthropic sort of started the trend.
Everything's a game engine, Casey. Well,
>> so it's like they were they were so not
a fair FPS measure. Okay.
>> Alls I'm saying is So it what I would
say is if that's the way you want to
quote things, that's totally fine
because I like having both. My
preference is to see both. So I like to
see the milliseconds and then I like to
convert that to FPS in my head so I can
see like if I was hitting monitor
refresh because the way that I usually
like to program um anything that's like
a user interaction is I like to hit
monitor refresh for like what I expect
the target monitor refresh to be. So if
someone pushes a button then like from
the time that that button comes in I
want to try on the frame that it came in
I want to try to have the response to it
on this frame that's submitted at that
time right so you push a button on one
frame and the next frame that you see as
like should have it now sometimes it's
two frames because like there's a
compositor in the way sometimes it's
more if the TV sucks and it's buffering
a lot of like there's reasons why that
can start to multiply out. But the way I
like to think of it is like okay at
least for the code uh like you know for
telemetry which I assume is where this
number is coming from. If you timed from
like when the the event happens and when
someone actually got a frame, I want to
see something close to monitor refresh
or twice monitor refresh depending on
what you're counting there, right? Um,
and so this is actually legitimately the
way I think about it. Like like that was
not I think people were saying or or
were trying to uh impugn to me the fact
that I was trying to make it sound worse
than it is by using FPS. And I guess
what I would say is that is like no and
or yes and no. I I do think of it that
way. And yes, I suppose the reason I use
that number is because I actually
believe it's bad. Like when you're not
getting monitor refresh that I think you
did something wrong probably, right?
It's like especially if it's just I'm
popping up a text box or some UI thing.
I just think you did something wrong.
You should you should be at monitor
refresh just period, right? And if you
don't agree with that, that's fine. Like
you can just be like, "No, I like my
things to be more more laggy than that."
Um, you can totally make an argument
that uh you just don't care. You're
like, "Look, 100 milliseconds is what I
think is reasonable for response to UI,
so that's what I do." Uh, totally fine,
too. But like claiming that FPS is a bad
way to do it. I totally disagree. I
think FPS is a very good way for someone
to have in their head like, "Oh, am I
close to monitor refresh?" Like, I know
I should be hitting 60. It's just a good
like metric to have. And if you want me
to convert that so I always say
16.66666667
instead I suppose I could say that for
you. Did did that help? If I changed it
from FPS to hertz what like I mean well
cycles per second presumably they'd say
again it has to be average for some
reason. I don't know why those are not
intrinsic to the measurement. Frames per
second just means you took a count of
frames and you divided by a time right
and it does not imply that there was any
more than even one. actually uh
technically you probably need to have
two to measure something between but
like you know um so anyway I found all
of that ridiculous and very
disheartening because it just I I was
like this is ridiculous
all of that all of this for something
that as far as I can tell isn't actually
relevant anyway like because uh for a
couple reasons but here's the first one
they said in that same post that the
original run dialog experience was 104
milliseconds and the thing they were
replacing.
>> Really?
>> Yeah. Was 94 milliseconds. That's what
they said in the post, right?
>> No, no, no. Not not not in that post,
right? I thought it was 400 millisecond.
>> That can't be real.
>> No, it was in the in the blog post that
I saw. I think it was 104 from on
Microsoft's blog. They were like the
original one was 104. This one's like 94
or something like that or 98 or I don't
like I don't remember the exact numbers,
but they were both very close to 100.
like one was less than 110, the other
was less than 100, right? So between 90
and 100. Um so
>> half half of the measurements are above
100 or above 94, too, cuz remember
that's just the median.
>> Well, sorry. Yeah. Well, I'm just
saying. So, um I was curious about that
because I was like I I don't know how
they're measuring it, right? Because
there's different ways you can measure
it. If you're if you're talking about
like a latency chain, uh, where you
press a physical button and then see
something, it's pretty easy to get a
response time to go up to something like
a 100 milliseconds. If you have slow
mouse, slow USB processing, the
operating system's a little slow, your
code is a little slow, the monitor
buffers several or the GPU is buffering
several frames, the monitor is buffering
some more frames. I could construct a
situation where some code that responded
potentially like like my little piece of
code that responds instantly still is
taking a 100 milliseconds because
everyone else in the train is screwing
me, right? This is a thing that people
who have ever measured latency with like
a camera know you can easily start to
beef that up, right?
>> Um
>> Yeah. Or you've ever accidentally played
a game on a TV set to non-gaming mode.
Exactly.
>> And all of a sudden you can you can feel
it when you're playing Mario. You're
like, "Oh, what is happening? Am I I
can't jump anymore.
>> That's why Prime loses in games.
>> That's actually why I've been on TV
mode. I didn't know that. I've been on
TV mode. I didn't know that. That's why
I lost at Fortnite.
>> Yeah, we used to watch TVs.
>> Yeah. When he used to do that doc when
he used to be do Dr. Disrespect and do
that channel, he had to stop playing
competitive games and create this
primogen thing specifically because of
this, you know, t he had a TV that was
buffering too many frames. He couldn't
win anymore. There's Call of Duty career
went down the toilet and here we are on
the standup. But that's ancient history
now. No sense dwelling on the past. The
point is um so I don't know where they
get this number from. Right.
>> I don't think Casey knows. We'll just
keep on going.
>> He Let's just say hit the end of his
career in as a
>> Oh, yeah. No, it was not that. No, I I
know.
>> Okay. All right. Just
>> Yeah. Yeah. It it it was let's say that
it uh
>> anyways
>> it involved trash. It was not Minecraft.
But anyway, um the the point is uh when
we uh look at these kind of numbers, who
knows how they're measured, right? Like
nobody knows,
>> right?
>> Um because they weren't discussed. So we
know that they were statistical, meaning
they said it was like a median. So
meaning we we know that they were
talking across a number of machines,
right? uh a number of configurations
probably meaning it's telemetry meaning
it probably comes from end user machines
but it's hard to say because again I
don't I don't know exactly what their
setup is for doing this but I was
curious about that because I was like
you know that sounds really high
actually from my recollection of the run
dialogue I was like I don't think it
takes 104 milliseconds uh from end of
click to showing the run dialogue uh on
on like Windows 10 for example
By the way, this is a very important
part because remember the post said this
is the fastest ever,
>> right? Which it may well
>> which tends to mean forever. It does
mean which is right which is uh which
good point is what I'm trying to get to.
>> So the part that confused me was I was
like where did that number come from? So
like on the on Windows 10 I tried
testing the existing run dialogue which
obviously is not the updated one and I
did a 60 hertz capture. Now I know that
60 Hz will make people very
uncomfortable. So what I mean to say is
a capture where the frames were capped
to 16.666667
milliseconds.
>> How many Casey is that in uh decaf
frames per hour? That's my preferred
that's the only unit that I prefer
discussing. So just you can convert that
again.
>> What is 60 in 60th up an hour? Um yeah I
don't know. Uh so I so I captured it and
captured a bunch of me running the you
know doing the run dialogue and just to
see what it was and it always responded
in two frames which would be you know
somewhere in the 30 millisecond range
depending on again if you were trying to
include mouse clicks or something I
don't know but assuming you were doing
telemetry from a machine then you can't
do that because you don't have a
high-speed camera sitting on so I'm
assuming they're recording something
like that and so I don't so I don't know
now So if they're using uh um that
number 104 as a median, well I tested
this on a machine that's a decade old.
It's 9 years old, right? So it's a very
old machine.
What are they testing across such that
they're able to get a number that's
three times higher than that as the
median, right? I don't know. And since I
don't know now, I have no idea what's
going on. So I don't know where the 100
millisecond number goes comes from. But
the reason I say this might just be much
to do about nothing is because if that
number is similarly inflated and the 94
is similarly inflated, the actual number
for response time might be much better.
It might be that number divided by
three, which would again be two frames,
which is fine, right?
um much much better than the uh you know
drastically increased three times
latency one that it sounded like it was
going to be which everyone I think would
have been correct to kind of freak out
about because it's like they are all
used to an experience where it's one or
two frames to pop up that run dialogue
and now it's taking three times longer
that would be uh annoying. So I I really
don't know what's going on here. I feel
like they needed to um if they were
going to make a post about performance
and they didn't want people to comment
on it, they needed to put more
information in there that would be
clearer about what's going on. And also
blaming people for having a reaction to
this, especially when they just quote
the like they just put a quote and be
like I think what I said is am I reading
this right? That's what I said. To get
really mad at someone who said am I
reading this right? This sounds really
slow is ridiculous. Like that's what
makes X so crap. The only response to
that should be uh either yes, you're
reading it right. This is kind of slow
for popping up a run dialogue because
that shouldn't really be any work. Or
yes, you were reading it wrong.
Actually, that 100 milliseconds is this
really bad way we measure it where we
measure it from the start of the click
to when we show it. And since we can't
launch till the person releases the
mouse button, that's an extra 50
milliseconds that's just padded on
there, right? Like that is the answer to
this. Not some snide like you can't use
ep. Like it's just it was garbage. Like
I really didn't like the responses that
I felt like they were ridiculous. And so
like I'm pretty I'm pretty thumbs down
on what people said. That is my
annoyance with it. The happy news though
is I think I think uh what's going to
happen is the run dialogue will probably
be fine. Um I can't say for sure, but I
think these numbers are not like they're
not measuring either what we think
they're measuring or they somewhere in
their test suite have 10,000 really old
buggy laptops that take an extra 70
milliseconds to do this operation and
they're skewing the median or something,
right? like like some explanation like
that. So until we get more information,
I think this is just a dead issue except
for the fact that people out there who
think FPS isn't a good way to intuitit
response times, I think you're totally
wrong.
>> I there Okay, I got to jump in, Casey.
So there is something about all of this
that you're really missing. And I would
just like to I I would love to hear
Trash's opinion on this one,
>> which is Oh god,
>> Trash, you've worked at Netflix now
since the great fall. Like Trash joined
and Netflix uh dropped by 60%. Uh
effectively is what happened. It was
more that was might have been 70%.
Anyways,
>> they heard that he was coming.
>> Yeah, they heard that he was coming. He
joins the company. Netflix went from 690
to 170 or something like that. It was a
d it was a disastrous moment for us. Uh
>> do you have like a bunch of like stock
from when you worked there? That tra was
did trash
ruin your retirement?
>> He did everybody a favor. He helped
people for a decade. So, thank you trash
for that. Everybody trash. Everyone give
trash a clap. This is why he's still at
Netflix even though
>> get those options down so they can go
back up.
>> Yes, exactly. There you go. Casey
stoning right there. Anyway, nailed it.
>> We've been at like you've worked on a
product that's sensitive to uh any sort
of code, right? Because the TV platform
is just it's a very hard platform. It's
a much slower platform than everything
else. Now, Trash, have you ever once
heard anybody at all in any point in
life ever talk about response times in
frames?
No.
>> Yeah. Casey, so this is something that
you might not know, but in the web
world, uh, nobody has ever once thought
of something in terms of frames. I don't
like this is a whole novel concept of
you being like, if something happens, I
expect next monitor refresh rate
something to happen.
>> Like no one's ever said that ever. That
would that would explain the disconnect
probably because to me so I like
obviously I was um raised I don't know
if that's the correct term
>> to catch on fire.
>> Um so I was raised in the era of during
the the v blink. Yeah. Right.
>> Yeah it was good prime. Nice vocabulary
buddy. Okay Casey continue on with
saying something smart please.
>> It's not smart it's historical. uh what
you normally would do, right, is you'd
try to have it so that you know you
update your stuff during the vertical
blank of like a CRT, right? It like the
scan line comes down, you update your
stuff and you come back around to the
top and you need to have everything done
in that time like for the next Right.
So, you're always I mean the the the
phrase racing the beam like made it into
the title of a book, I think, right? And
that's what that
>> was referring to. You're racing the beam
the like the the actual like uh CRT like
display beam, right? that the thing that
excites the phosphorus on the screen um
of the of a cathode ray tube, right? And
then went from there to like
uh in sort of like the Carmarmac era of
gaming like when like the Quake engine
kind of ushered in 3D and this sort of
stuff in in a big way.
um at that point like I believe he had a
thing and I don't remember if this was
like something that he said in like
person that I remember him saying or
whether it was something that he posted
in like a plan file um but I remember
him being like look if you structure
your
update loop in one way where you like do
your rendering it where you issue your
rendering you you update the world issue
rendering and then process input um
you lose a little bit of time because
some of the input maybe you could have
gotten a little bit be like just before
you were about to submit the the render
or something like like there was a thing
where he was talking about that and I
was always like oh okay yeah I I
probably should always be very
thoughtful of like how can I make sure I
get input as close as possible to
submission so that I'm introducing the
least like the little smallest amount of
latency
uh especially if you have something like
uh vsync on where you're going to like
if you like processed input and then
waited on vsync then came around and did
your render now there's an even bigger
gap between those things right and so uh
I've always I'm always used to thinking
of it is frames so input comes in on a
frame you should see it on the next
frame as close as I can make it I don't
want to be the weak link in that chain I
want it to be the TV that's screwing you
not me so I've always thought of it that
way so I always think of it as FPS and
Especially nowadays when like you know
when I do ping times on like the network
here even on this crappy Comcast
connection that I'm on um most uh
network on modern broadband internet the
actual ping time out from the person uh
to like a local to something that's
close to them is actually submonitor
refresh like you can actually get a
network packet to someone and back uh in
less time than like a 60 Hz refresh.
That's how good this stuff has gotten.
You know, people on fiber are getting
sub one millisecond ping times to things
like the no l Google node, right? It's
incredible. And so nowadays, I just
think everything should be thought that
way. Like it's just it's just look the
fastest we can uh the reason to do it in
frames. That's the fastest we can get
something out to the user. Like what's
the lowest uh uh amount of time this
monitor can hit? That's what we should
be shooting for. And sometimes it's
unrealistic because it's like, okay,
they're on like some fi north of 500 uh
hertz monitor. The operation we're doing
is too heavyweight. So, we got to set a
more conservative frame target. Totally
fine. But I I never think of it in terms
of anything other than that because
that's our limit. That's what I can give
you the frames at.
>> Yeah. I mean to be fair we do
>> in the even in the web world we do think
about FPS especially for like
>> animated heavy websites when you
noticeably see like jank and it's like
stuttering that's typically when we'll
actually take into account like FPS but
honestly most apps like
>> aren't really doing any animations it's
all just async crud apps just waiting
for something right so it's a more of
how long this take to load which we'll
use time like milliseconds verse an FPS
because that just wouldn't make sense in
that case for us
>> will TTF Is that what I'm hearing?
>> A little bit of that. A little bit of
time the first bite. Yeah. A little bit
of that.
>> I feel like that is sort of a separate
thing too is like um
>> you know to me the user should see the
response instantaneously even if the
thing takes a little while. So like
suppose I'm on some network and I'm like
look it's AWS so you know good luck
getting this response back in in less
than 30 milliseconds because like even
though the data center is is like 2
milliseconds of of of hop away or
something as soon as it hits AWS it's
just grinds to a halt right and like uh
that's been my experience and it was
like the the late the time it takes
light to get to the data center has
nothing to do with how long it's going
to take that they are just going to chew
through those milliseconds doing
whatever it is that they do uh with like
their switching and you know virtual
machine management or whatever it is you
know I don't work there I have no idea.
So assuming that you're going to do that
you're like look we're not going to hit
60 Hz or 120 hertz because we know this
thing is going to take like 40
milliseconds to get back from AWS. I
still want to show the thing
immediately. So like for the case of a
run dialogue let's say for whatever
reason I can't predict it. I don't know
the is going to do it. I have to fetch
their run history from AWS for some
reason because like it's oh it's a
shared it's like a synced run history
across machines. I didn't know they were
on this machine or some I mean I don't
know how that doesn't make any sense. I
should have sunk this ahead of time but
whatever. Um
I would fire off that request but
display the run dialogue on the next
frame right because I know that by the
time they're actually able to hit the
first key that I'll need to search that
run dialogue for I probably will get at
least some of that information back. And
I so I'm covering a little bit of that
latency and giving the user the instant
response that I want to give them,
right? Um and then if if you know the
response doesn't come back and they do
hit a key and I'm sitting there and I'm
like as not loading, then I have to put
up a little spinner or something, right?
Just tell them like look AWS is is
me here. So I get it like you
know run history not available to WS
response the little thing.
>> Um
>> but you know that's just how I think
about it. So like I'm not being
disingenuous. That is literally how I
think about it. Um, and it pisses me off
in games, too. Like, if I'm sitting
there waiting for a loading screen that
you I'm like, "Guys, you obviously could
have streamed this in." Like, why wasn't
this already loaded? Like, what's going
on? I get mad at that all the time. I'm
just like, the the goal should be zero
weight states for the user pretty much
ever.
>> So, we we've had a lot of arguments
about this over over the years. And who
you and uh my previous team uh shall we
say? And so one of the one of the big
things was what's worse, the initial
loading or inapp loading? Like which one
actually makes a user more nuts? Uh
which one's going to cause them to be
more upset? Would you rather have a
bunch of small distributed little loads
throughout the app or would you rather
have a bigger initial load?
So in my mind usually so
I would say that if I find myself in
that literal position
then my answer would be how often do
they load this thing
but
before finding myself in that position I
would have asked the question are you
sure are you sure that you couldn't find
a way to make this work because a lot of
times if people are like oh we have no
choice choice. But this long initial
load, I'm like, are you sure? Like, are
you sure that you actually did
everything you could to make that
initial package you needed to get
started as small as possible? Right.
>> Well, I'm on team bigger load initially.
That's
>> if the app is,
>> but obviously within a threshold within
a
>> if the app is loaded infrequently, then
if you have to make that trade-off, I
would say you do that. if the app is
loaded all the time because you like
typically load this thing, do a little
tiny thing, and then close it, then
you're kind of in this nasty situation
where it's like, okay, well, I don't
know. It's it's sort of just as bad,
right? Like because, you know, so I I
would say I wouldn't think about those
things as different. I would just say
there's frequency of operation and cost
of operation and you're trying to
minimize the total of those, right? The
cost times the, you know, the cost times
the frequency. And so if the frequency
of launching this app is very high and
the frequency of things you do in the
app is very low, then maybe it would
make sense to actually try to minimize
your app load time. But in general, I
would say like
99% of the time when someone's like,
"Oh, I needed to do X, so that's why
there's a long load time here." I'm
like, "No, you didn't." Like I can think
of tons of ways that I could have not
done it that way, right? Like strip this
out. Don't do it that way. Have a low
quality version of that thing you stream
in first. Right? Like think mega
texture, right? Or uh level of detail
would be a better way to think of it,
right? I know that I have something I
can display for this thing. It may just
not be the best looking version of that
thing. So if I'm caught by surprise, I
do that right away and then increase its
resolution when I can, right? Things
like this uh are are you can typically
do things to try and make sure that
you're very responsive. And you know, if
you then decide like, okay, no, we can't
do that because this thing has to be
senely. Sure, you can always paint
yourself into a quarter where you where
you absolutely have to do this thing and
then I agree you do, but I would make
sure all those avenues are exhausted
first is I guess what I would say.
>> Yeah, we do have like some techniques
that we call or that we coined call like
progressive enhancement which is
>> yeah the shittiest thing but if you have
a good machine then we'll slowly enhance
your experience right
>> which I think is fair.
>> I don't go ahead. Go ahead. No, just to
try and get that nice responsive feel
because, you know, um and that's again
that's just because that's the way I
like things. I like things to be very
responsive. Maybe some people just don't
care. They like they push the right
button on something, you know, if you
open up Netflix, you push the rights
button, it takes a while, kind of
lagging, it goes, uh I'm like, that
sucks. Like, someone should fix this,
right? If someone else might be like, I
don't know, it was fine, right? And so,
and so it really depends on who you're
talking to probably what their
preference is on those two things,
right? I don't know. Um, does that make
sense? Like, you know, some people might
be fine with that, some people might not
be.
>> Yeah. I mean, it's hard to Everyone has
a different threshold of really to
tolerate, right?
>> Yeah.
>> So, yeah, it's hard like who do you
optimize for? Like, there's nothing I
hate worse. I would hate to have a quick
experience like load or like a quick
loading experience, but then every time
I click something, it's like, ah,
>> exactly.
>> Now, now we got to now that thing I
think that's like significantly worse in
my opinion
>> because the clicking is more frequent,
right? It's that's what I say. Like it's
frequency versus cost. If you're going
to click a hundred times in this thing
but only load it once, you don't want
the hundred things to each take the long
time and the one thing to be fast,
right? That's not helping anybody,
right? So,
>> right.
>> Yeah.
>> That's what all my banking software
looks like. I like open like my banking
dashboard. It's just like 20 spinners
and then I click something else and it's
like 40 more spinners. I'm like, who's
making these banking apps? Insane.
>> Crash has just got so many zeros in his,
you know, it's just such a full bank
account. after spinning forever to
figure out what's in his account.
>> Progressive
zero is getting added to trash's bank
account. It's like,
>> oh my goodness, we have to widen this
div. It's crazy.
>> If I had that many zeros, I would not be
on this podcast. You know what I'm
saying? Happy traveler.
>> That doesn't even make sense. Stretch.
>> It doesn't.
>> You're not working right now.
>> Here's the thing. The wall of Pokemon
would be bigger. Pokemon would be much
better.
>> That's what I'm saying. Aren't you
having fun hanging out with us? Would
you still be on the podcast?
>> Yeah, trash. Trash, you're not paid to
be on this podcast. What do you mean?
>> I thought you did it.
>> Whatever. Whatever. Whatever. I said
what I said. I don't care.
>> Uh, red button, blue button, I don't
know.
>> I don't even care.
>> Oh, no.
>> That was still the best answer I'm
answering. From now on, when people ask
that red blue question, I'm giving
Trash's answer. It's the best answer
I've ever heard and I loved it. It was
so good. I don't like it.
>> I was exactly how much thought the
question deserved. It was perfect. I
like I that was a teachable moment for
me and I have learned from Trash and I
am a better person now. That's my
opinion. Anyway,
>> I really wanted to for the full episode
just like play I thought about just
having the edit be it does trash his
answer and then we play everything else
on 16x and then it just ends with KCU
saying
>> I hated this discussion at the end of
the episode. It's too fast.
>> I thought people would enjoy the overall
conversation, but I did think about like
publishing the full episode just with
trash answering and then
>> it was and then the answer. It was
freaking perfect, dude. I loved I loved
it.
>> M Microsoft has a bit of a hill to climb
>> because I I'm just going to throw this
out there. I also get an uh like an
update just recently that restarts my
computer like six times before the
update actually happens.
>> Yeah.
>> And I just read an article from
somewhere where it's just like it's
actually totally normal that Windows
needs to up, you know, restart your
computer 15 times for an update. Like
this is actually by design. And so I
think part of the problem that I I
personally have is that they're like
look at the run per dialogue performance
and it's just like well that's something
I virtually never use
>> because I just don't I mean I don't do
development on there so I'm not opening
something that needs that. Typically I'm
you know I'm opening a couple things
that I've pinned. I use Windows in a
very rookie way. And so it's just like
none of these improvements really help
me. I still run into bugs all the time.
Like right now, for whatever reason,
we're back into this state where when I
create a folder, it's goes to the bottom
of the list and not the top of the list.
Like all the folders are on the top. I
create a new one, it goes to the bottom.
And so I have to leave and come back if
I want it up at the top again. And it's
just like it's driving me bonkers again
that there's so many little things are
broken and I just want to like lose my
marbles. And then they're like, "Bro,
but run dialogue, dog. It's so fast."
>> But they didn't But they didn't say
that. What they said is we re we're
we're putting in a new run dialogue that
was made with performance top of mind.
And great news, it's basically the exact
same speed as the old one, right? That's
what they said. Like nobody said that it
actually substantially improved the run
the performance. So presumably what they
were trying to say was we added some
features, right? I'm guessing. I assume.
I mean I don't know because I don't
care. This is the other thing that I
hate about the fact that this tweet got,
I guess, so many likes that people
started replying to it with this crap
about FPS. But anyway,
um I'm assuming that the idea is they
added a bunch of features and didn't
make it slower, which is good, right? I
mean, like I'm happy that they
>> first time in a while
>> didn't do that, but at the same time,
it's like I wouldn't mention that,
right? I wouldn't have cited some
numbers and been like, "Hey, like we're
so proud of ourselves that we didn't
slow down a run dialogue." Like I'm
like, "Yeah, like like what? That's like
that's like par for the course." I MEAN,
WHAT ARE YOU TALKING ABOUT? Like of
course you shouldn't have slowed down
the time it takes to open the run
dialogue. That's a blog post now. Like
what's going on? Right? So that alone
too is just very frustrating cuz you're
like now you're getting mad at now
you're getting mad at me for replying to
somebody who replied to your thing where
all you did was say that the run
dialogue takes 94 milliseconds which is
a hell of a lot of time for something to
take. And like how did we get here? You
know it's ridiculous. This shouldn't
have even been news. It shouldn't even
been posted.
>> Well to be fair the person that got the
person that most got mad at you was
actually a writer for something. It
wasn't that it was like a Odin. They
could have got Odin a Wikipedia page,
but instead Casey, you're now getting a
Wikipedia page being Mr. FPS, you know,
falsifier.
>> Um, except it's not false. It is the It
is the FPS. But yes, uh, like the
question I have um, there would also be
like could we, you proposed this trade,
uh, I believe to Jimmy Wales on the
previous episode. Let's propose it now.
I can go back and delete my original
tweet and post a new tweet where I put
the millisecond number in place of where
the FPS number. Now, mind you, my tweet
had both because I quoted the
millisecond number. So, it w it wasn't
that I didn't include that information,
right? It was that they didn't like the
even the fact that you could bring FPS
into it was just this unholy, you know,
uh absolutely uh ridiculous thing to do.
But anyway, I'll go back and delete that
tweet and only mention milliseconds. I
won't mention FPS anywhere in it in
exchange for them writing a nice article
about Odin um and how it's used at
Django Effects. There we go.
>> There's our deal.
>> That's a good deal.
>> That's a good deal. That's a good deal.
>> Right. We all Everyone wins.
>> Everyone.
>> Um by the way,
>> I don't know if you know this, but a
kind of a little update. uh this person
named Phil, which you can't really quite
see well on my or the stream can't quite
see it very well, but Phil over here
wrote his own version in which takes
approximately 20 milliseconds to show up
on screen and so he's able to show a
dialogue super ultra quick and his own
handwritten one.
>> Yeah. But the problem with that is that
like um I'm just I'm just going to put
myself in the mind space of the people
who were replying to my tweet. Okay.
>> The problem take a moment, Casey. Take a
take a moment.
>> The problem with that is is in that
demonstration doesn't mean anything
because that person didn't run it on all
the same machines and take the median.
>> Yeah.
>> It doesn't It doesn't matter. It does
meaningless. It doesn't matter.
>> It's meaningless cuz he has a different
monitor.
>> Also, he's not loading he's not loading
the run history from Microsoft One Drive
or whatever the heck it is that this
thing does, right? So, he's not doing
the the things I always get. They're all
ridiculous, but they're that they're
like um you know, it's not an apples to
apples comparison. Uh you don't have all
the features. It's the features. Uh it's
um it's the plugins. You just don't you
don't have plugins. Plugins. Everyone
knows that as soon as there's the
concept of a plugin, everything is takes
uh several seconds to happen. Um blah
blah blah. I think that's what he'll
people reply with with that crap to that
person even though he did it right.
>> So Casey, you're actually missing kind
of like a really fun part of webdev. Uh
which goes a little something like this,
which is all right, we're going to
rewrite something and we're going to
rewrite it. And here's our kind of first
implementation of it. And it is 10 times
faster, bro.
>> It's so good. the previous version. Like
this new version, it's so fast and they
release it and everyone's like
high-fiving and then
>> about 3 months later
>> after you fully rewritten it, it's
effectively baseline or worse. Like
typically it actually goes worse. Like
this happened with a very major project
that I saw actually got significantly
worse memory usage. And so it's just
like but in the beginning it was so
good. So, when I see like a run dialogue
rewrite that came in below budget, I
mean, you don't realize what this does
to me. Like, I can't I didn't even think
it was possible. So, I'm actually very
impressed.
>> I mean, like I said, I I don't know. I'm
just saying what people will say. I I
don't know. I I
>> I thought for Oh, go ahead.
>> No, T, please. I was going to say
initially when I saw the tweet I thought
for sure I misread it because I thought
they were saying the start menu thing.
The thing that people actually open. You
know what I'm saying? The one that like
>> sometimes you press the start thing and
then it like it just doesn't show up for
5 seconds and then it shows up. And I
was like
>> I was like good for Yes. Yeah. It shows
me ads for Edge and for Bing and and
like
>> I was like wow good for them. a feature
that a regular everyday person uses.
They rewrote from scratch and took from
my experience median of five to 10
seconds to load it feels like. And they
brought it down to 90 milliseconds. I'm
like, great. Good for them.
>> It's the opposite of that, right? Every
single version of Windows, it gets
slower.
>> The start menu is still bad and the run
menu that my parents don't know exists
is
>> My mom has never seen the run menu. She
does not know what that even means. Like
if I were to tell, oh, just use the run
menu. You'd be like, what is a run menu?
>> I I'm kind of confused about the run
menu to be completely honest because um
>> again, this is kind of like for
historical reasons. Originally, the
start menu did not really have the
concept of like type to execute. So like
if you look back at like a Windows 95 or
Windows 2000 XP era start menu then what
happened if I if I'm remembering
correctly is typing would be would be
interpreted as like trying to hotkey
through that menu. So like you popped up
the start menu using like uh the super
key or whatever or the Windows key or
whatever it would be called. I guess
>> the co-pilot key now Casey
>> co-pilot what? Yeah. Right. Um, you push
that, the start button opens and you
type a key. I think it just hotkeys
through that menu. It doesn't start uh
it didn't originally I at least my
recollection is it didn't originally
start accepting those as keystrokes to
be interpreted as a command of some
kind. If you now do it, like if I hit
that button, uh, it it does so like if I
hit the start menu button and I start
typing, it does sort of like a Linux C
style thing where you start typing into
a kind of ambiguous box that's just
like, I don't know, I'm going to do
something with this.
>> Yeah, the menu effectively.
>> Effectively, my question is,
>> why is there even a run menu to begin
with? Now, isn't that thing like what
why are there two different things? And
I'm guessing, and I could be wrong, I'm
guessing the answer is because the run
menu is actually going to run the thing.
Whereas the the box is like we have to
keep that as like an idiot box. Like it
has to be a thing where you just type if
you type in C colon uh back slash uh you
know, Windows back slashnotepad.exe
exe into that or something. We have to
show you ads for our new co-pilot
improved uh notepad that you or what
right like it has to it has to do all
these other businessoriented operations.
So that can't be the run dialogue. We
have to have this other run dialogue. Is
that the explanation? Because I don't
really know like I don't know why there
are two.
>> Yeah, Casey. Unfortunately, you're 100%
right. It will literally show you
internet search results in the start
menu in Windows right now. My Windows
machine
for the internet search results. It's a
thing. Uh
>> I find Casey
>> Wait, can I say one more thing about
that though, which is that Casey,
unfortunately, you'll be really pleased
or sad to hear. I don't know. Depending
on, you know, are we praying on
Microsoft's downfall? I'm not sure. But
>> okay,
>> often times it shows the internet search
result higher than the local program. In
my experience on that where you start
typing something, I start typing slay
the spire 2 and it doesn't pick the
game. It's going to pick a web search to
bring me to slayer 2.com or something
like that instead and opens it up.
>> Oh yeah, it does a bunch of stuff.
>> Edge.
>> Yeah, trash. Hold it up so we can see.
Flip flip your, you know, point yourself
away from the camera. Hold it.
>> No, you might reveal this one password.
>> This is This is a work machine. Hold on.
It might reveal his one password. Don't
do that. Don't do Don't listen to
Don't give away your password. Trash.
>> Oddly enough, I do have my password on
the screen right now.
>> I saved it. I save it in place.
>> No, you don't. Don't say NO. ARE YOU
KIDDING ME RIGHT NOW?
>> Oh no.
>> Was that a joke?
>> I don't think he's kidding.
>> Oh no.
>> You can't admit that. You cannot admit
that out loud. You just You just
>> Bro, it's secure.
>> It's secure.
trash. I'm just kidding.
>> All right. So,
>> Daisy, can I make can I make you even
more frustrated?
>> I mean, I I again like I don't care.
Windows, do whatever you want. I
switched. I don't care. The frustration
was the tweets.
>> Okay. So, that's very immature of you.
This is my own life.
>> Mhm. So, one thing that's kind of
interesting about uh uh what's called
the start menu is that you can you can
kind of treat it like a fuzzy finder a
little bit. So, I can type in like s
notes and hopefully I get what I'm
wanting. It doesn't quite work that
well. It it pulls up results. I can't
quite figure it out. But the run one is
definitely not fuzzy findable,
>> right?
>> So, the run one you have to type in like
the correct thing. You have to say the
program you're going to run,
>> which I assume is the intent, right?
like it's trying it's trying to be more
of a command line like experience which
is why I this is why I assume that there
are two which is kind of weird but like
you know yeah so that's that's the
that's the interesting one is that you
get a more fuzzy find plus internet
results one for one and a no fuzzyfind
one for the other one and so but the
updates to the one that nobody know
really generally most people don't use I
assume
>> yeah I'm assuming it's more more for
people who just like They they back in
the day they opened the start menu and
selected run which is how you originally
got to this or you learned the hotkey of
win r or something and now that's just
part of your workflow so we tried to
keep it which I appreciate them doing
like they could have just removed it
like you said very few people probably
use it in rel relative to their gigantic
user base but very few people in this
case is still probably in the hundred
thousands right because win is so huge.
Yeah,
>> I think I most often see it in um let's
see, Kit Boga videos where the guys are
trying to scam him and they make him run
a command.
That's the time I most often see the run
menu is they say, "Open up run menu,
type," and then they say something
insane to type in there.
>> By the way, TJ, just so you know, you
could always disable search results if
you wanted to.
>> Oh, I can. I don't have any computers
left now.
Okay,
just in case you wanted to if you know
it's one of the fantastic features start
menu. You can disable ads. It's like a
it's an available option.
>> We talked about this recently. I
literally tried to boot up an old
Windows computer that I had so I could
have it as a Minecraft machine for my
wife so that when we play Minecraft
together, she just has one computer that
we turn on and then it opens to
Minecraft. Basically, it got stuck in an
update loop where I couldn't download
Minecraft because it was waiting for
Windows updates, but Windows updates
couldn't run cuz it was trying to run
Windows Store problems. And so, they
fought each other. And I couldn't get an
update or Minecraft installed on the
machine. So, I deleted everything and
installed Linux and put Minecraft on
there faster than I could get the
Windows update.
>> Minecraft. A a Microsoft product. A
Microsoft product. I had to run the
Android emulated version of Bedrock
Minecraft on my Linux machine which I
installed from scratch faster than I
could figure out how to get the Windows
thing to work cuz I had to do the
because Bedrock one. That's the one that
we're running for my kid. So anyways,
it's crazy.
>> I think Microsoft should just start
shipping Linux. I think it's over. I
think they should just
>> put ruin that too. They should put a
Windows logo on Linux and call it
Microsoft Linux or something like that.
Microsoft Linux
>> Windows 12. That's all you have to do.
>> That's just it's Windows 12. Windows 12
is just Linux and they just and they
just like like send all their source
code to the wine developers because as
far as I'm concerned, it's over.
>> Like it's just it's over, guys. Like
it's over.
>> Instead of Windows Subsystem for Linux,
it could be window what would be the
opposite of subsystem? something that
can other Windows super system. There we
go. Linux. Yeah,
>> it's still WSL, but it's also C-pilot.
>> It's called Copilot WSL because people
have been trying I mean people have been
trying for decades to get things fixed
at this point now and it's just it's too
late. Like it's just like everyone was
forced to go do other stuff now. That's
why this is happening. No one wanted to
do this. Like like Valve didn't want to
make Steam OS. Like I didn't want to
change our machines here to Linux. I was
fine with Windows. They just they forced
us to do it by just never caring about
what any of us think. And so now we're
gone. I'm not coming back. It doesn't
matter.
>> Oh, great question. Can they win you
back? What would Microsoft have to do to
win you back?
>> They can't because I was That's what
happens. So, when you have a customer
who's been a customer for, you know, I
don't know, 30 years or something or 25
years, I don't I'd have to go count how
long it was. Um, since since like the
early 90s probably, I would say, uh,
when I was like in high school, I think
I started using Windows, but um, doesn't
matter like Windows 3.1 and stuff. Uh,
so the point is when you have a customer
who's been with you that long and had
all of their stuff like built on your
system and was used to it and you know
that was how they do their work.
The amount of work you're asking them to
do to leave is pretty substantial. In
order to get to that point, right, it's
not a like it's not a trial separation.
It's not a like we're just gonna take
some time to find each other and then
we'll come back and see if this marriage
still works. It's none of that. This is
a like I find you found you screwing the
babysitter and we're getting divorced
forever and I will never speak to you
again and I'm taking the kids. Like
that's that's how the Windows thing went
with me and I suspect that's how it went
with a lot of people. They were so bad
for so long and so egregiously anti-user
that the people who left because of that
are never coming back. Like I'm never
coming back ever. There's nothing you
could do to win me back. I will die a
user of some alternative operating
system. The question that they would
need to ask is how do they stop that
from happening to more people?
>> That's the only question left for them.
>> Casey, I I hear all those words you
said, the babysitter, all that. Okay. Um
but what if just hear me out here. You
know, you know how Hollywood stopped
having good and new ideas?
What if Windows 7 remastered?
>> Windows 7 part two.
>> Windows 7 Performance Edition.
>> Just throwing it out there. What if we
went backwards? Well, but the pro here's
the thing is that's assuming that uh you
know that's to to continue my analogy
that's just like saying I've changed
I what do YOU MEAN LIKE WHAT HOW DO I
know how do I know you're not going to
go if I take because now I have to do
work to switch back to your platform
what what guarantees do I have that you
won't just start sucking again
immediately right and none you've
demonstrated what kind of company you
are you've demonstrated how you treat
your users. You've demonstrated
institutionally what you think of us,
which is you don't think of us. You
don't care. When we repeatedly say you
need to fix this Windows update
situation, when we repeatedly say that
like all of these things are broken, the
fi like the explorer, if you
accidentally drag an icon over a network
share, it pauses for several seconds
unreoverably. How long has that been in
there? Right? Don't fix anything. I
don't care anymore. I don't want to rely
on you anymore. Right? It's gotten to
the point where some random people on
the internet who put together a Linux
distribution and put up an ISO are more
reliable to me than you. That is where
you have gotten right
in terms of what I think of your ability
to provide software to me that I can
rely on. It's over. It's it's it's done.
There's no way. There's nothing you
could do. I will, you know, I would go
start working on Linux to fix it before
I would go back to Windows.
>> So, not even XP remaster.
>> Brutal.
>> No, no. I It's the It's the It's a loss
of confidence. Complete loss of
confidence in the institution, right?
>> Okay. But what about Windows do?
>> Oh my gosh. Shut up. Hey guys, if you
like this episode, you can watch the
rest of it on the Spotify. And don't
forget to like and subscribe. Woo!
See you later.
>> Boot up today
errors on my screen.
Terminal coffee
and
living the dream.
Ask follow-up questions or revisit key timestamps.
This episode of the standup features a discussion about recent performance claims made by Microsoft regarding the Windows 11 'Run' dialogue box. The host expresses skepticism about the '94 millisecond' performance improvement metric and the company's decision to promote it as a significant achievement, sparking a debate on how user interface response times should be measured and whether 'frames per second' is a valid metric for UI performance. The conversation also touches on broader frustrations with Windows, including update loops, broken features, and the shift towards alternative operating systems like Linux, as well as the challenges of balancing user experience with technical constraints.
Videos recently processed by our community