I don't get it, if I use C++/CX do I have to compile a version of my app for ARM and one for intel? If not then how can this be native. Also I created a demo using the c++/cx array and jsut creating a million winrt strings with it. I did this in c# and in c++/cx. The c++/cx version does not reclaim memory when control leaves the function scope it is declared and instantiated in. My memory climbs to somewhere around 100MB and stays like that till the program ends. The C# version seems to be garbage collected very quickly and does not go above 30MB ever. I thought the benefit of reference counting was that it would be deleted immediately making the memory available to me. I'm not an expert c++ guy, is there something I need to do to get better performance than the c# version without "going full native". I assumed c++/cx was the most performant form of WinRT coding since there is no CLR and GC and all that.