From: Prashant Srinivasan Date: 2008-04-24T05:23:03+09:00 Subject: Re: [PATCH] SPARC architecture optimizations Charles Oliver Nutter wrote: > Prashant Srinivasan wrote: >> Charles Oliver Nutter wrote: >>> Prashant Srinivasan wrote: >>>> Hello Matz, >>>> >>>> Thank you for the response. >>>> >>>> Yes, it is indeed okay to remove that particular invocation to >>>> FLUSH_REGISTER_WINDOWS, since it is redundant. Another call to >>>> FLUSH_REGISTER_WINDOWS is made in rb_thread_save_context as a part >>>> of THREAD_SAVE_CONTEXT. >>>> ie., in rb_thread_save_context(), the following exists. >>> >>> So has this been included? I saw some perf numbers relating to this >>> and the gains were pretty substantial. >> >> Hey Charlie, >> The above mentioned change has not made it in . . . but another flush >> call(the one in EXEC_TAG) has been removed. It'll be really cool if >> someone can commit this change - the call to flush windows here is >> unnecessary - and it's quite an expensive call to have redundant >> invocations. > > Maybe if you could quantify expensive with some before/after numbers? > Here is data obtained from running the Computer language shootout tests on a V490 running OpenSolaris. A couple of tests are home grown. We're seeing between 4.88% - 12.74% increase in performance(ie., a decrease in latency) with Ruby patched with the flush patch I sent on this thread. TraverseXmlDom 4.88% SpectralNorm 6.18% BinaryTrees 6.59% ParseXmlData 4.41% Nsievebits 7.44% Nsieve 1.46% Fasta 8.11% Recursive 7.62% PartialSums 6.44% Nbody 6.59% SumCol 12.74% Fannkuch 7.12% Cheers, -ps > - Charlie > -- Prashant Srinivasan F/OSS Enthusiast Sun Microsystems, Inc. http://blogs.sun.com/prashant GnuPG key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x82FBDE5A