On Mon, Jul 16, 2012 at 9:17 PM, Ben Smith-Mannschott
<bsmith.o...@gmail.com> wrote:
> On Mon, Jul 16, 2012 at 5:21 PM, Raju Bitter <rajubit...@googlemail.com> 
> wrote:
>> I've checked out the Clojure source code, and build the JAR using the
>> Ant command. I'm seeing a strange effect, where the compile time on my
>> normal hard disk takes almost 4 min (with most the time being spent in
>> the "compile-clojure" task, and doing the same build process on my SSD
>> taking 30-35s.
>>
>> I've never seen any similar behavior on my machine, normally build
>> processes take 10% more when they run on the HDD vs. the SSD. Has
>> anyone else experienced the same effect? How long does it take to run
>> the "ant build" on your machines?
>>
>> Thanks,
>> Raju
>
> I believe this is related to an oddity of the clojure compiler: it
> syncs every time it writes a class file to disk. This appears to be
> necessary for reasons that escape me. (One might naively assume that a
> simple flush() would be enough; but that was not so when I stumbled
> across this myself a year or so ago.)
>
> In any event, it does not surprise me in the least that a storm of
> sync calls would cause a mechanical hard disk to grovel a bit, while
> presenting

(new keyboard, sorry)

... while presenting little difficulty for an SSD.


    static public void writeClassFile(String internalName, byte[]
bytecode) throws IOException{

        ... skip a bit, brother ...

        try
                {
                cfs.write(bytecode);
                cfs.flush();
                cfs.getFD().sync();     // <------
                }
        finally
                {
                cfs.close();
                }
    }

// ben

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to