2GB array size limit in .Net

Until 4.5 version, .Net restricts System.Array’s size to 2 Gb (like any single object) even in 64 bits environment.

Since .Net 4.5, a config entry can be used in 64 bits to permit greater size:

<configuration>
  <runtime>
    <gcAllowVeryLargeObjects enabled="true" />
  </runtime>
</configuration>

but Microsoft’s System.Array have index limited to Int32.MaxValue: 2147483647 (Mono can be use with configuration option –enable-big-arrays to use Int64 capacity – see here).

Another alternative can be to use it’s own big array like this one BigArray, getting around the 2GB array size limit – SpankyJ – Site Home – MSDN Blogs.

Performance analysis of Asm.js/Emscripten vs native code

An interesting analysis of performances of Asm.js generated by Emscripten versus C native code.

Pros: Asm.js can be really fast on optimized browser (currenltly only Firefox 22).

Cons: Emscripten produce big Asm.js program file, this program consume lot of memory and can be much more slower than there javascript equivalent on non optimized browser (every browsere except Firefox 22)

I’ve made my personnal very small test using The Lua VM, on the Web (higher is better):

  • Firefox 22: 430
  • IE 10: 133
  • Chrome 28: 128

Even if Mozilla have made a great job on its Firefox 22 Asm.js optimizations, Asm.js future depends on its ability to convince either IE or Chrome to join their forces in Asm.js direction.

More details here: Surprise! Mozilla can produce near-native performance on the Web | Ars Technica.

ReactiveUI 5.0

ReactiveUI brings MVVM to a new level with a simple binding model combining RX to Xaml. Property changes, commands, .Net eventsend of asynchronious actions becomes observable and can be combined together.

And version 5.0 is provided as Portable Class Library for:

  • Xamarin.iOS
  • Xamarin.Android
  • Xamarin.Mac
  • .NET 4.0/4.5 (WPF)
  • Windows Phone 8
  • Windows Store Apps (WinRT)

Great. Perhaps the next thing to try in a real project.

Port of Pocketsphinx provide a real-time recognizer to JavaScript

Pocketsphinx have been posted to javascript using emscripten: Voice-enable Your Website With CMUSphinx | CMU Sphinx – Speech Recognition Toolkit.

With the emscripten’s ability to generate asm.js (-s ASM_JS=1 details here) and recent advances in asm.js browser native support (Firefox 22+ and perhaps clue of Google interest), this way to port legacy code can be the next big thing.