Date: Fri, 8 Oct 2010 09:15:17 -0700 From: Joe Marshall <jmarsh...@alum.mit.edu>
>> Â Date: Thu, 7 Oct 2010 12:38:59 -0700 >> Â From: m...@birkholz.chandler.az.us (Matt Birkholz) >> >> Â Can a Scheme-side cache of the machine configuration avoid much of the >> Â cost of thread switching by punting fesetenv() when switching to a >> Â thread with the same expectation of the floating-point environment? I'd be surprised if thread-switching were frequent enough that this would make a difference. Currently Scheme switches threads every tenth of a second, but I think that's much too long a delay, actually; Edwin becomes almost unusable with that delay. I often set TIMER-INTERVAL to be a millisecond, which is the finest resolution the microcode supports at the moment, although I'd also like to add primitives to support nanosecond- resolution time operations, using the POSIX clock_* routines. Anyway, I'll try to measure the performance difference once I implement the changes to CWCC. From what I recall, actually, a huge portion -- something like 95% -- of the time spent by CWCC or non- local continuation invocation is spent copying the interpreter's history. On Thu, Oct 7, 2010 at 8:57 PM, Taylor R Campbell <campb...@mumble.net> wrote: > What I have in mind is for every > continuation invocation -- including those used to switch threads -- > to do fesetenv. I assume you mean every *non-local* continuation. Oops -- you're right! That is what I meant. _______________________________________________ MIT-Scheme-devel mailing list MIT-Scheme-devel@gnu.org http://lists.gnu.org/mailman/listinfo/mit-scheme-devel