On Mon, Jul 16, 2012 at 9:17 PM, Ben Smith-Mannschott
<[email protected]> wrote:
> On Mon, Jul 16, 2012 at 5:21 PM, Raju Bitter <[email protected]>
> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en