Uno Platform Leverages Xamarin for WebAssembly .NET Memory Profiler Support – Visual Studio Magazine
Uno Platform Leverages Xamarin for WebAssembly .NET Memory Profiler Support
In its latest update, Uno Platform borrowed a Xamarin technology to add brand new memory profiler support to .NET WebAssembly.
The open-source Uno platform helps developers build single-source C# and XAML applications that run natively on many platforms. It is a major player in the Microsoft-centric development space, claiming the only offering that enables single-code-based application development for Windows, WebAssembly, iOS, macOS, Android, and Linux, targeting all operating systems. operations and browsers. It also partnered with Microsoft on projects such as WinUI 3 and even beat Microsoft at its own game in some respects, such as being the first to provide Ahead of Time (AOT) compilation for WebAssembly, the technology behind Client-side Blazor. .
By announcing Uno Platform 4.1 last week with performance gains and support for several new products, the company apparently improved Microsoft further when it comes to WebAssembly memory profiler support.
“Troubleshooting memory issues is not an easy task, but can be made more efficient with tools,” Uno Platform said. “.NET WebAssembly does not provide such tools, but since it uses the Mono VM underneath, the tools found in the Xamarin space can be used with the correct input.”
Indeed, the Microsoft documentation for Xamarin Profiler states: “Historically, Mono has featured a powerful command-line profiler for collecting information about programs running in the Mono runtime called the Mono Log Profiler. The Xamarin Profiler a GUI for the Mono Log Profiler, and supports profiling Android, iOS, tvOS, and Mac apps on Mac, and Android, iOS, and tvOS apps on Windows.
Thus, Uno Platform said: “We took on the task of enabling memory profiling for WebAssembly, including the mono logging profiler in the runtime, giving the ability to create memory profiles that can be opened at Xamarin Profiler help.”
This gave this:
In other news, performance updates have been made to a variety of platform builds as mentioned.
“For this release, we have made numerous changes to a wide range of Uno platform components, such as style resolution, measurement pass layout and performance, memory consumption and allocations, which which results in a performance improvement of up to 30% in certain scenarios,” the company said.
Other highlights of Uno Platform 4.1 include support for Android 12 SDK and its dependencies, as well as removing support for Android 10 SDK.
Also new is support for recent Microsoft developer tools, specifically .NET 6 Mobile Preview 13 and VS 2022 17.2 Preview 1.
“The .NET team has released Preview 13 of its Mobile Bindings, introducing a set of low-level breaking changes to the macOS and iOS APIs,” the announcement post reads. “This change is unlikely to impact most net6 Uno applications, but libraries that use ‘native’ primitives such as ‘nint’ and ‘nfloat’ will require some code changes.”
Additionally, integration with the Visual Studio Code plugin that was introduced in the December release of Uno Platform v.4.0 has been improved in two ways:
- Improvements to code change detection, so that code completion shows up-to-date code content in an app
- The ability to set a port number in the remote control tool, which can be especially useful when publishing an app to a container
The announcement post includes much more detail on all of the above and more. Overall, the new release comes with more than 200 new feature requests, bugs and issues raised by the community, which now includes more than 210 contributors, Uno Platform said.
David Ramel is an editor and writer for Converge360.