<html><body>What triggers GC in haskell?&nbsp; We obviously aren't using Java's method of GC as needed(for good reasons, Java's method is terrible because you get slow downs when you need speed the most).&nbsp; But we should be able to learn something from Java and have a gc::IO() method that one could call BEFORE a critical region of code...<br><p><br>---------- Původní zpráva ----------<br>Od: Mike Meyer &lt;mwm@mired.org&gt;<br>Datum: 27. 11. 2012<br>Předmět: [Haskell-cafe] Real-time code in Haskell (Was: Can a GC delay TCP connection formation?)</p><blockquote>On Tue, Nov 27, 2012 at 3:45 AM, Gregory Collins<br>&lt;greg@gregorycollins.net&gt; wrote:<br>&gt; If you have a hard real-time requirement then a garbage-collected<br>&gt; language may not be appropriate for you.<br><br>This is a common meme, but frankly, it isn't true. When writing<br>real-time code, you just need to make sure that everything that<br>happens takes a known maximum amount of time. Then, you can sum up the<br>maximums and verify that you do indeed finish in the real-time window<br>of the task.<br><br>GC is a problem because it's not predictable, and may not have a<br>maximum. However, it's no worse than a modern version of the C<br>function malloc. Some of those even do garbage collection internally<br>before doing an OS call if they're out of memory. The solution is the<br>same in both cases - make sure you don't do GC (or call malloc) in the<br>critical region. Both require knowing implementation details of<br>everything you call, but it isn't impossible, or even particularly<br>difficult.<br><br>Lazyness, on the other hand ... I haven't thought about. I suspect you<br>need to force the evaluation of everything you're going to need before<br>you start the critical region, but I wonder if that's enough? Has<br>anyone out there investigated this?<br><br>       Thanks,<br>       &lt;mike<br><br>_______________________________________________<br>Haskell-Cafe mailing list<br>Haskell-Cafe@haskell.org<br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a></blockquote></body></html>