Speaking of freeing up hard drive space, after doing so I ran Disk Defragmenter to make sure everything was cleaned up nicely before I install (which I intend to get started on right after this journal entry). As the defragmenter was running I wondered why do we even need to defragment hard drives? I mean sure, I understand the process of disk fragmentation and the need to clean it up, but why does defragmentation have to be an occasional time consuming activity?
When I was doing my degree we had a coursework for an Operating Systems module which required us to implement a file system emulator (just as a simple Java program). Most of the class implemented simple FAT-based solutions, apart from the Unix Crew, who used Linux-like implementations. I was one of the few who went for something a bit more exotic. I don't remember all the details but I think it was vaguely NTFS-based and I know that one of the things I considered was automatic defragmentation. The plan was that every filesystem operation (or certain types of operations) would perform a partial defragmentation of the filesystem, making full defrags unnecessary. Unfortunately I never got around to implementing this feature so I never found out what complications would arise from it. It seems an interesting idea though.
In Language Shootout news, some of my new programs have been accepted now. The new faster programs move C++ g++ above both D Digital Mars and C gcc in the overall charts on execution time for the first time since I started submitting programs.
benchmark-name | C++ speed as % of fastest other | status*one of the optimisations used may now be considered illegal, which will affect several programs in the benchmark, including mine
nsieve | 101 | 1 program accepted, 1 program rejected
regex-dna | 165 | 1 program accepted
nsieve-bits | 97* | 1 program accepted*
recursive | 98 | 1 program accepted
mandelbrot | 97 | 1 program accepted
nbody | 102 | 1 program accepted
fasta | 103 | Not attempted
cheap-concurrency | 1852 | 1 program accepted, 1 program rejected, 1 program pending
spectral-norm | 102 | 1 program accepted
k-nucleotide | 93 | 1 program accepted, 1 program rejected
chameneoes | 770 | 1 program pending
pi-digits | 102 | Not attempted
partial-sums | 139 | 1 program accepted
reverse-complement | 85 | 1 program accepted
binary-trees | 405 | 1 program pending
fannkuch | 170 | Not attempted
sum-file | 224 | Not attempted
startup | 294 | Not attempted
I have to finish by saying I'm disappointed that nobody spotted my not-so-little typo in last weeks journal entry. Or perhaps you all thought it was one of my bad plays on words.