From: Federico A. L. <fl...@ma...> - 2003-07-14 02:03:49
|
> Hi guys, > The SolidFile class has been temporary modified to accept CRC insteadof > String filenames. (With the strings the thing is pretty slower). I dont have the code here, but the SolidFile is supposed to be supporting opening VirtualFiles by Strings and CRC alike. > The bad point is the speed of the addFile method, which can be improved. > We can change the "append to table then sort" algorithm into something > quicker, like a mergesort. So we don't need the heavy reordering of the > entire table. Dont worry too much about the addFile it will be used offline so the ones that have to be lighting fast are open-read-seek-close... open-read-close looks like they are lighting fast, try doing some random seek to see how much it takes. > My implementation for now does not support the developers table, the > solidFileManipulator buffering (I discovered that the stdlib files have an > internal buffer too.. so we can avoid to build a second buffer) and the > defragmentation. Better if you are using the stdlib internal buffer. > Soon I'll release the entire packet. Looking forward for it. > Benchmark: "lock-release PAQSolidFile, 100 times" > Elapsed time: 490 milli-seconds > Benchmark: "add 5000 files (1byte length) with different crc numbers" > Elapsed time: 2073 milli-seconds > Benchmark: "deleting the 5000 previous created files" > Elapsed time: 581 milli-seconds Dont worry about the time it takes on these. > Benchmark: "opening 1000 different files" > Elapsed time: 10 milli-seconds > Benchmark: "reading 1byte from every previous opened file" > Elapsed time: 20 milli-seconds > Benchmark: "closing the 1000 previous opened files" > Elapsed time: 0 milli-seconds These are the important ones. And pretty good figures I must say. Good job, as a suggestion try to use random accesses and random size reads, so you can check for more or less real time conditions. Greetings Red Knight |