Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Erik Meijer: Latency, Native Relativity and Energy-Efficient Programming
Jul 30, 2012 at 3:51 PM> Assembly language isn't even the lowest level ... maybe the machine has microcode
Yup. Microops. Your x86 processor doesn't run x86 instructions; it dynamically translates (and caches) them into a small RISC like instruction set which can vary even in different chip models from the same vendor.
X86 is just a convenient "intermediate language". And by convenient, I mean a lot of software exists that runs on it.
GoingNative 9: LINQ for C/C++, Native Rx, Meet Aaron Lahman
Jun 26, 2012 at 2:45 PM@Indranil:
Good question! Complexity guarantees have always been a bit messy for lazy evaluation. I'm not offering an excuse for Linq to objects, just general information. Everything just creates a wrapper, and the behavior of that wrapper depends on what's inside it and so forth.
For instance, consider "r = Range(1, n); r.SelectMany(x=>r.Take(1<<x)).Where(x=>x==1)" -- no Linq operator takes exponential time, but each element of this composition takes exponential steps to compute (1, 2, 4, 8, ...).
That said, I'll do what I can to make sure that the performance characteristics are, at least, predictable.
~
As for optimizations, I looking at how much we can preserve. Generally, aggregations are always O(N), but we can optimize special cases, such as zero-argument count. Filtering is amenable to bidirectional traversal only, as we need to skip an indeterminate number of elements.
GoingNative 9: LINQ for C/C++, Native Rx, Meet Aaron Lahman
Jun 26, 2012 at 2:13 PM@rab36:
Actually, that's just cmd.exe, with a custom prompt (try "prompt /?") and a few aliases (try "doskey /?"). It's just a muscle memory thing for me.