InfoQ

News

Linden Labs Help Mono Fix Leaks

Posted by Jonathan Allen on Jan 23, 2007 06:00 AM

Community
.NET
Topics
Tags
Mono

The Second Life developers at Linden Labs, working in conjunction with the Mono team, have been able to fix several memory leaks in Mono, significantly improving the runtime performance and stability of the platform.

Since 2005, Linden Research has been considering Mono as the runtime for their scripting engine. The original plan called for compiling the Linden Scripting Language into CIL. CIL or Common Intermediate Language is an assembly-like language that all higher level programming languages like C# and VB need to be compiled to prior to being run by Microsoft's CLR or the Mono runtime.

Presumably Mono was chosen for its cross-platform capabilities. Mono, which is supported by Novell, is currently the most complete cross-platform implementation of the .NET framework available for commercial projects.

At the LANG.Net 2006 Symposium, Babbage Linden presented their work in integrating LSL. Babbage reports (http://blog.secondlife.com/2006/08/06/langnet-2006/) that the conference went over quite well.

I was initially concerned that the collection of hacks I presented for embedding Mono in SL might appall people, but the consensus seemed to be that they were neat hacks and they generated a lot of discussion about potential future enhancements to the CLR. A lot of discussion at the conference was about supporting dynamic languages like Ruby which, like Second Life, would benefit immensely from support for continuations in the CLI. Hopefully we’ll see them in the future.

During the presentation, Babbage noticed that the simulator memory was steadily growing. Concerned, he first examined his own code for memory leaks. Not finding any, he turned to the Mono runtime itself.

Using Valgrind's memcheck and massif tools, Babbage was able to collect the information needed by Mono's Paolo Molaro to correct the issue. Early results show that Mono is no longer growing in size, indicating that the performance robbing flaws have been corrected.

Babbage concludes with

With this development, the work on Mono takes another step forwards. We’re currently working on moving script compilation to our new web services platform and once that’s done I can wire in the LSL to Mono compiler, bytecode injector and verifier as web services and then the main pieces of the work on Mono will be done.

 

No comments

Reply

Exclusive Content

Dan Farino About MySpace’s Architecture

Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.

Biztalk Services in the Cloud

Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.

Java FX Technology Preview

InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.

Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.