Microsoft commit more resources to .Net MF

This would mean that not only the native code, but also the meta data needs to be deployed to the device. I guess that reflection should be possible then.
In fact this is also done on windows PC’s.
IL is compiled to native code by the JIT (or AOT, which is also available for Windows, without loosing any features).
MS is advertising AOT currently for W8 store apps and others to boost load time.

For me reflection associates with flexible programming. And that’s the reason I love .NET platform.

@ iamin, late binding.

I hope I’m not repeating what someone else might have already brought up. While back I came across this interesting post:
JIT Compiler for NET MF? Or dynamic load native code

I’ve seen a lot of effort to speed up NETMF critical codes: RLP, interops, SimpleNGen and Fluent by Corey Kosak, etc… But I can’t understand why no one took on making the already included Jitter in NETMF work, as mentioned being doable but not easy by Lorenzo Tessiore in the above referenced post?

The JIT compiler would need Memory for code (which is quite a lot a guess) and RAM at runtime.
Also the compiled code needs to be in RAM I guess.
This is why I thing JIT is not the right way until a board with double speed and RAM of G400 costs as less as Cerb

JIT…

1 Like

They did JIT for NETMF way back in the early days. They found that, given the memory constraints, they ended up discarding JITted code and re-JITting code often enough that there was little if any performance improvement.

I still think AOT is the way to go.

We would need at least a way to selectively jit those methods that are time critical, a way to explicitly denote these methods, and a performance profiler to find out which ones are critical.The factor four speedup, if affirmed for larger pieces of code, may not be enough to make this worthwhile. On the other hand, an AOT compiler is quite a bit more work than such a jit.

here

is a brief description what the difference between AOT and JIT is.

2 Likes

I’m not an expert in this area but just from a conceptual view I would say that the use of a JIT always has a payload on performance against a compiler where you can have optimalisation during compile (just once against every time in a JIT)

That’s often true, however, JIT has some advantages, for example:
[ul]The JIT knows EXACTLY what archtecture it’s running on (Intel vs AMD, for example), and can therefore perform optimizations specifically for that architecture and any subtle differences it has, where an AOT compiler must compile for a more limited subset of common hardware.
The JIT gets to watch the program in operation, so it knows how code is actually used more accurately than static analysis can show. This means that it can spend extra time more heavily optimizing those areas that will show the most benefit.[/ul]

JIT raises interesting questions on an embedded system… the first tme any code is executed, it will be very very slow. What happens to control loops? What will be the impact on the initialization of outputs?

Raises some very interesting startup issues. AOT does not have these issues.

One way to handle initialization code in a JIT is to ignore it at first; simply use an interpreter for that code. Only when a piece of code is executed the second time, you JIT it. For non-real time systems that approach is ok. For real-time systems, you definitely don’t want the Jitter to start working when an interrupt occurs for the first time. That’s why for our embedded real-time Java OS, we did compilation right after class loading. Which required generating some ugly run-time tests to artificially delay some initialization code, to make sure the Java lazy initialization semantics were not violated.

This thread is now two and half a month old.
Any updates from Microsoft?

Just noticed a talk at http://www.dotnetconf.net/ (hosted on Microsoft’s Channel9 site) called .NET Micro Framework and IoT. Talk is 5PM PDT on Wednesday 25 June.

Stephen.

Did that IoT talk ever happen? I can’t find reference to it anywhere and the link is dead now: http://channel9.msdn.com/Events/dotnetConf/2014/-NET-Micro-Framework-and-the-Internet-of-Things

:open_mouth:

Seems to have vanished. I guess it was cancelled

“The .Net Micro Framework and IoT session got cancelled because a personal emergency from the speaker. But, we’ll record it and add it to the recorded sessions in the NETConf site. It is a very interesting topic.”

Clarification: The .NET Micro Framework itself isn’t cancelled, just today’s presentation on it!

Taken from the Lobby chat on Jabbr

I guess we should keep an eye on the recordings…no hints to when they will record a session.

BTW: May I recommend to watch the future of C# http://channel9.msdn.com/Events/dotnetConf/2014/C-6-0-Roslyn

2 Likes

Interesting to read: “Why I Left the .NET Framework”, by Jonathan Oliver. I know it’s not the same as the Micro but …

Come on Microsoft, time is ticking and will soon run out!

Could someone please tell me what happened to the great News that we were supposed to hear from MS and then GHI soon?

I liked njbuch’s comment:

[quote=“njbuch”]Clarification: The .NET Micro Framework itself isn’t cancelled, just today’s presentation on it!
[/quote]

Stopped reading once guy started complaining about Visual Studio :slight_smile:

1 Like

@ Simon from Vilnius - I agree: VS is one of the best if not the best IDE I ever used. The guy is not a prophet; so we don’t have to agree with everything he says!

I am planning on using VS with VisualGDB: http://visualgdb.com/ for my native ARM development.

1 Like