in reply to Re^4: Fast parsing for cypher block chaining
in thread Fast parsing for cypher block chaining

If it done right, it should be faster than this buggy code you show here. I say buggy since you're assuming the input file is a multiple of 8 bytes.

Using IO::File is probably much slower than using read and write. Objects are slower than their non-object equivalent.

If you want to use sysread and syswrite, you can use them with the solution in Re: Fast parsing for cypher block chaining, which is what you should be using.

Replies are listed 'Best First'.
Re^6: Fast parsing for cypher block chaining
by fluffyvoidwarrior (Monk) on Mar 01, 2006 at 17:20 UTC
    Yes, Thanks.
    I'll compare this with using Crypt::CBC as you suggested earlier.
    As for the "bug" you spotted - my intention was to parse the last 64k buffer outside this loop which removes the need for huge numbers of loop exit condition tests ("while" actually does slow it down), replacing such tests with a simple counter in all except the last bufferfull.
    I suppose I should have posted more code to give a better feel of things but I didn't want to dump too much on people when I thought I'd isolated the crux of the speed issue. That being how to optimise splitting a 64k string into 8 byte chunks. Using Crypt::CBC as you suggested may mean that I don't need to do this anyway.
    Again, thanks for your help. I'll experiment further and update this post if your still interested .....

      while is 19% faster! Well, for small files. For big files, it's probably the same speed, but more readable.