M
Microsoft Israel Blogs
blogs.microsoft.co.il · Group blog · on HN since 2008
Microsoft Israel Blogs hosts posts by developers on Windows internals, .NET, modern C++, and Linux tracing tools like BPF.
What HN saysHN links it for technical explainers such as Windows memory usage, USDT probes with bcc, and a humorous post on languages and facial hair.
29HN people shared it
10linked it in comments
29stories submitted
65story points
8 years agolast shared
2008people per year2026
Most-shared posts
- 1Computer languages and facial hair4 people · 5 points · first shared 2008 · 1 comments on HN
- 2Compile-Time and Runtime-Safe Replacement for “printf” (2015)3 people · 5 points · first shared 2015 · 1 comments on HN
- 3Windows Process Memory Usage Demystified2 people · 2 points · first shared 2017 · discussion on HN
- 4USDT probe support in Linux bcc/BPF, tracing Node.js2 people · 1 points · first shared 2016 · discussion on HN
- 5Winrt and net in windows 82 people · first shared 2011
- 6Why You Have to Learn Modern C++1 people · 14 points · first shared 2015 · 9 comments on HN
- 7Two New EBPF Tools: Memleak and Argdist1 people · 5 points · first shared 2016 · discussion on HN
- 8Implementing std::tuple from the Ground Up: Part 7, tuple_cat Take 21 people · 3 points · first shared 2015 · discussion on HN
- 9What AnyCPU Really Means As Of .NET 4.5 and Visual Studio 111 people · 3 points · first shared 2012 · discussion on HN
- 10Tracing .NET Core on Linux with USDT and BCC1 people · 2 points · first shared 2018 · discussion on HN
- 11Virtual Method Dispatch and Object Layout Changes in CLR 4.01 people · 2 points · first shared 2012 · discussion on HN
- 12Shared Memory Queue, Adaptive Pthread_mutex, and Dynamic Tracing1 people · 2 points · first shared 2016 · discussion on HN
- 13Wishes for the CLR JIT in the 2020s1 people · 2 points · first shared 2013 · discussion on HN
- 14Profiling a .NET Core Application on Linux1 people · 2 points · first shared 2017 · discussion on HN
- 15Using Windows Phone As Windows 7 Accelerometer Sensor1 people · 2 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
ubercow · 2018-06-16
It's very frustrating having all of these tools only support Windows.
Despite all the wonderful work Microsoft has done with CoreCLR, the "IDE" debugger is still only available under a license that only permits use with Visual Studio and VSCode [1] and mdbg is still nowhere to be found for CoreCLR [2].
1: https://github.com/dotnet/core/issues/505
2: https://github.com/dotnet/coreclr/issues/1145
From what I've gathered, the best you have right now for doing command line debugging is the "SOS" plugin for lldb, which seems to require building the lldb plugin and sometimes even lldb (!!) yourself [3][4].
3: https://github.com/dotnet/coreclr/blob/master/Documentation/building/d…
4: http://blogs.microsoft.co.il/sasha/2017/02/26/analyzing-a-net-core-cor…
Not very fun if you're not using Windows.
10ren · 2010-06-23
Matz (ruby) is alleged by the following article to have grown a beard due to the claim that they correlate with language success: http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-l…
aseipp · 2017-12-05
Yes it does. You can use Userland Statically Defined Trace Points (USDTs) in order to augment arbitrary applications with probe points that can be monitored by tools like BCC 'trace'.
The library that provides the API for these trace points is SystemTap (sys/sdt.h), which is -- AFAICS -- the primary method of USDT instrumenting on Linux. Conveniently, SystemTap's USDT API is the exact same as DTrace's API: you can simply use sprinkle `DTRACE_PROBEn` calls around and it will work fine on either, use the 'dtrace' tool to generate code from a provider, etc etc. Their dtrace tool is just a thin script that's compatible with the FreeBSD variant.
(The nice part about this is that you should just be able to relax e.g. your autoconf checks from enabling DTRACE_PROBEn calls on FreeBSD/Solaris to include Linux as well, so migration should be smooth)
Check out some info here[1].
Alternatively, for "simple" cases where you do not need provider support (e.g. inputs to the trace points), if the executable just has enough symbol information for function names, or the symbol names are exported anyway, you can generally glean some relevant information. For example, the following command uses the 'funclatency' tool to dump a latency histogram of every function call to any function with the word 'poke' in its name, for the application named 'app' in the CWD:
sudo /usr/share/bcc/tools/funclatency -F -T \
$(pwd)/app:*poke* \
-p $(pidof app)
NB: It is also worth noting that…
barrkel · 2017-11-01
Commit size isn't the most important number either. You can commit large chunks of memory and if you don't touch it, Windows won't allocate it; not in physical memory nor in page file.
Here's another article with more recent details: http://blogs.microsoft.co.il/sasha/2016/01/05/windows-process-memory-u…
finishingmove · 2015-01-04
According to this source, there are: http://blogs.microsoft.co.il/dorony/2014/10/07/scala-performance-tips-…
manojlds · 2012-10-23
I trust Scott Hanselman - WinRT is built on top of Win32 - http://www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktop…
Another blog that says the same - http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/15/winrt-and-…
gacba · 2011-09-16
One of many, but certainly the latest:
http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/15/winrt-and-…
WinRT will require you to completely rewrite your app if you want a total Metro experience. IOW, .NET apps are not fully supported as first-class citizens of Win8. Can they run? Yes. Are they what Microsoft wants you to do? No.
13ren · 2008-10-22
11. http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-l…
PS: I think I need to get a pipe.
saurik · 2018-06-08
Technically (and truly), C++ has dependent types, as types can depend on values [edit: matt-noonan has corrected me and pointed out this is wrong, but I think most of this comment is still useful]. (I can't say much about D, but I would believe it does as well; I could also see them having "simplified" away a really critical piece, though.)
A prototypical concept you would expect to find in a dependently typed language is "the ability to have a function that concatenates to arrays of sizes X and Y and returns an array of size X+Y that can be safely verified against further functions that also require arrays given as arguments to have specific lengths".
C++ is a bit indirect in its semantics here, but you will note that most other languages with generic types cannot express this thought (using either real integers or simulating them with types, either of which can be done in C++).
One could easily imagine "filling out" C++ to allow compile time type argument manipulation of more value types without even stressing its model, and in fact that is exactly the direction the language has been going in with constexpr. Here is an article on how to build a compile-time printf using C++14.
http://blogs.microsoft.co.il/sasha/2015/01/29/compile-time-runtime-saf…
The only real limitation in C++ is that these values have to be relatively "concrete": at some level there has to be a number that can be calculated, as you can only deal with values as you don't have the…