"JIT" has been done for .Net Micro Framework 4.3.1 - Netduino Plus 2 (and Netduino Plus 1) - Netduino Forums
   
Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

"JIT" has been done for .Net Micro Framework 4.3.1


  • Please log in to reply
5 replies to this topic

#1 weixiongmei

weixiongmei

    Advanced Member

  • Members
  • PipPipPip
  • 68 posts
  • LocationPhiladelphia, Pennsylvania, United States

Posted 18 April 2014 - 09:08 AM

Hi, the "JIT" has been ported to the .Net Micro Framework 4.3.1, but it does not provides the performance like the JIT of the .Net Framework, so i just called my "JIT" for Fake JIT, the performance can be 4x faster with my fake JIT compared to the official .Net Micro framework that's with interpreter. And here are the results and test code below:

 

Platform: STM32F407

Speed:168Mhz

Compiled Firmware Version: .Net Micro Framework 4.3.1(Debug)

Note: If firmware compiled as Release version, it could be up to 2x faster than the Debug version. If compiled as RTM version, it would be faster than Release version.(But i don't know how much performance can be improve for RTM version, because i didn't test it.)

 

Test mathod:

Increase the variable "count" by 1 in a loop of 1,000,000 times. It tooks 31889ms with the official interpreter. And it tooks only 7891ms if my fake JIT is enabled. Which mean when the STM32F407 running at 168Mhz with fake JIT enabled, the peformance is equal to 672Mhz with official interpreter.

Attached Files



#2 Mario Vernari

Mario Vernari

    Advanced Member

  • Members
  • PipPipPip
  • 1768 posts
  • LocationVenezia, Italia

Posted 18 April 2014 - 11:35 AM

The news is awesome, but...what about the memory? I suppose the "JIT" would require kinda cache where to compile and execute the opcodes.

Could you clarify where the trick is?

Many thanks for your effort, anyway!

Cheers


Biggest fault of Netduino? It runs by electricity.

#3 Cuno

Cuno

    Advanced Member

  • Members
  • PipPipPip
  • 144 posts
  • LocationZürich / Switzerland

Posted 18 April 2014 - 11:56 AM

Interesting! How much RAM does your JIT use? Can you selectively jit methods or assemblies, maybe set aside a fixed amount of RAM for the generated code?

Cuno

#4 Innovactive

Innovactive

    Member

  • Members
  • PipPip
  • 29 posts

Posted 18 April 2014 - 03:10 PM

You have absolutely to share something more about it!  :o



#5 zeroaviation

zeroaviation

    Member

  • Members
  • PipPip
  • 28 posts

Posted 18 April 2014 - 04:03 PM

He sadly hasn't shared any code written in the past. Only tried to sale it :(



#6 weixiongmei

weixiongmei

    Advanced Member

  • Members
  • PipPipPip
  • 68 posts
  • LocationPhiladelphia, Pennsylvania, United States

Posted 18 April 2014 - 07:27 PM

Hi, Mr.Mario Vernari,Cuno,Innovactive, sorry, i can't quote the replies in the forum with IE11, i don't know why, so i just reply you guys with out quote.

Yes, it takes more RAM for jitting, and i didn't reserved a fixed amount of ram for that, it would claims the ram on the heap dynamically. And i knew there is a official JITTER in the .Net Micro Framework source code, i can get it passed the compiling process, but it went into hard fault on the code "hr = stack->m_nativeMethod( *stack )" in the file of interpreter.cpp, so my fake JIT is not based on the official JIT, if the official JIT could works, i think it could be much faster than my fake JIT. I'm recording a series of video of teaching how to do the porting for the .Net Micro Framework for the beginners, such as how to debug the firmware in MDK, how to port the CAN/Systick/RTC/RNG,SDRAM/SRAM/FSMC LCD/RGB LCD with DMA2D for SSD2119

Hi Mr.Zeroaviation, yes, i know i'm a selfish person, i know i never shared the code for free, because i have my difficulties, i'm a very poor person, and my family really need the money, so i can only be rude for not sharing the code for free, hope you can understand me. If it really hurt you, i'm so sorry about that. :(






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.