|
Wordle 947 3/6
π©β¬π¨β¬π¨
π©π¨π¨π¨β¬
π©π©π©π©π©
|
|
|
|
|
Wordle 947 4/6*
β¬β¬π¨π¨π¨
β¬β¬π©π©π¨
π©β¬π©π©β¬
π©π©π©π©π©
Happiness will never come to those who fail to appreciate what they already have. -Anon
And those who were seen dancing were thought to be insane by those who could not hear the music. -Frederick Nietzsche
|
|
|
|
|
β¬β¬π¨β¬π¨
β¬β¬β¬β¬β¬
β¬β¬π©π©π¨
π©π©π©π©π©
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 947 6/6
β¬β¬β¬β¬β¬
β¬β¬π©β¬β¬
β¬β¬π¨π¨π¨
β¬π¨π¨π©β¬
β¬π¨π©π©π©
π©π©π©π©π©
Phew.
|
|
|
|
|
Wordle 947 4/6
π¨β¬β¬β¬π¨
β¬β¬π©π©β¬
β¬π¨π©π©β¬
π©π©π©π©π©
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
Wordle 947 4/6
π¨β¬β¬π¨β¬
β¬β¬π©π©π©
β¬π¨π©π©π©
π©π©π©π©π©
|
|
|
|
|
Wordle 947 3/6
β¬π¨π¨β¬π¨
β¬π¨π©π©β¬
π©π©π©π©π©
Jeremy Falcon
|
|
|
|
|
Wordle 947 3/6*
π¨π¨β¬β¬π¨
β¬β¬π©π©π¨
π©π©π©π©π©
|
|
|
|
|
I thought it would have come and gone by now.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
|
seems so
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Wordle 946 3/6
β¬β¬π¨β¬π¨
β¬π¨π¨π¨π¨
π©π©π©π©π©
|
|
|
|
|
Wordle 946 3/6*
β¬π¨π¨β¬β¬
β¬π©β¬π¨π¨
π©π©π©π©π©
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wordle 946 4/6
β¬β¬β¬β¬β¬
β¬π©π©β¬π¨
β¬π©π©π¨β¬
π©π©π©π©π©
|
|
|
|
|
β¬π¨β¬π¨β¬
β¬β¬π¨β¬β¬
β¬π©π©β¬π¨
π©π©π©π©π©
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 946 5/6
β¬β¬β¬β¬π¨
π¨π¨π¨β¬π¨
π¨π¨π©π¨β¬
β¬π©π©π©π©
π©π©π©π©π©
βThat which can be asserted without evidence, can be dismissed without evidence.β
β Christopher Hitchens
|
|
|
|
|
Wordle 946 3/6
β¬β¬π¨π¨β¬
β¬π©π¨π©β¬
π©π©π©π©π©
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
Wordle 946 4/6
β¬β¬β¬π©β¬
β¬π©π©π©π©
β¬π©π©π©π©
π©π©π©π©π©
All π© towers
|
|
|
|
|
Wordle 946 3/6
β¬π¨β¬β¬β¬
π¨π¨π¨π¨π¨
π©π©π©π©π©
|
|
|
|
|
Wordle 946 2/6*
β¬π¨π¨π¨β¬
π©π©π©π©π©
According to stats, my 20th 2 out of 540.
|
|
|
|
|
Basically I am not sure about a number of things regarding how it works
if((this.current >= 'A' && this.current <= 'Z') ||
(this.current >= 'a' && this.current <= 'z')) {
}
In MSIL you'd have to pepper the IL you drop for that if construct with a bunch of extra Ldarg_0 arguments to retrieve the this reference for *each* comparison.
On x86 CPUs (and well, most any CPU with registers, which IL doesn't really have unless you stretch the terminology to include its list of function arguments and locals) you'd load the this pointer into a register and work off that rather than repeatedly loading it onto the stack every time you need to access it as you would in IL. On pretty much any supporting architecture this is much faster than hitting stack. Maybe an order of magnitude.
So my question is for example, is the JIT compiler smart enough to resolve those repeated Ldarg_0 s into register access? That's just one thing I want to know.
Some avenues of research I considered to figure this out:
1. Running the code through a debugger and dropping to assembly. The only way I can do that reliably is with debug info, which may change how the JITter drops native instructions. I can't rely on it.
2. Using ngen and then disassembling the result but again, that's not JITted, but rather precompiled so things like whole program optimization are in play. I can't rely on it.
And I can't find any material that will help me figure that out short of the very dry and difficult specs they release, which I'm not even sure tell me that, since the JIT compiler's actual implementation details aren't part of the standard.
What I'm hoping for is something some clever Microsoft employee or blogger wrote that describes the behavior of Microsoft's JITter in some detail.
There are some real world implications for some C# code that my library generates. I need to make some decisions about it and I feel like I don't have all the information I need.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I really enjoy reading your posts here and am full of admiration for you.
But surely this belongs in Q/A?
|
|
|
|
|
What's the appropriate section when looking for blog posts? It's not exactly a programming question?
I posted it here because I've seen people ask for book recommends and similar about programming concepts, but I've never seen such a question in Q&A (not saying they don't exist, just that I've never seen them)
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
For that specific question, "is the JIT compiler smart enough to resolve those repeated Ldarg_0s into register access?", you'll find the answer with magnitudes less effort (compared to learning the inner workings of a JIT compiler) by compiling and linking the code in a tiny test program, load it into VS and display the disassembly.
Another remark: JITting is essentially code generation - including loophole optimization. Code generation is inherently CPU dependent. x86, x64 and ARM require significantly different code generators. If they are developed by the same team, you can expect them to have similar overall structure, but the actual code generation may be quite different - because the CPUs are different. Significant parts may have been created by different people, each of them expert on one specific CPU. Maybe you'll see one optimization on ARM that you do not see on x86, or even the other way around. Maybe one optimization that you expected to see was omitted because it didn't give a speed increase at all, on that specific processor (remember that jitting is done for one specific CPU, e.g. utilizing instruction set extensions available on that specific chip where the jitter is running).
If I could spare the time, it sure would be fascinating to dig into the entire jitter for ARM, say, to learn how many of all the tricks in the book they have implemented. I guess it would be more or less the entire book, but not necessarily for all the latest instruction set extensions. Learning and fully understanding the entire ARM JITter would be a major task, though, way beyond finding out if one specific peephole optimization is applied on one specific CPU chip in one specific context.
Religious freedom is the freedom to say that two plus two make five.
|
|
|
|
|
Quote:
For that specific question, "is the JIT compiler smart enough to resolve those repeated Ldarg_0s into register access?", you'll find the answer with magnitudes less effort (compared to learning the inner workings of a JIT compiler) by compiling and linking the code in a tiny test program, load it into VS and display the disassembly.
I must be a dunce, because I can't get it to disassemble in release.
Quote: Another remark: JITting is essentially code generation - including loophole optimization. Code generation is inherently CPU dependent. x86, x64 and ARM require significantly different code generators.
I would still expect them all to use registers (assuming the architecture supports it) if one does. Or if not, they will eventually. Looking at the x86 code gives me baseline information I can use to determine the code it produces on most machines, and some insight into how their code generation works generally. Yes they are different, but the performance priorities Microsoft assigns to them won't be. If the x86 JITter uses registers, the ARM one does too, and if it doesn't, it will get there.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|