I'm not sure exactly what you are doing, but often just comparing the -M times is enough if you are trying to ascertain whether a copy is still a "copy" of the original.

The file test operators to determine modification time and size do not have to read the whole file, just the directory information and therefore are fast compared to MD5 checksum calculations. doing a bit by bit compare of two files may even be faster than calculating the MD5 (no math required, but requires more I/O bandwidth).

Anyway I would start with the idea of comparing -M times and then answer the question: "why wouldn't that work" and that will lead to alternate algorithms if needed. There are all kind of scenarios here, the -M time could be different but the content of the files are the same (app re-wrote file with no changes). But I suspect vast speed enhancements can be made if you figure out how,why,when the files could be different and use that application specific knowledge to tailor your comparison algorithm. Anyway the modification date is normally the most important thing and file size the second most important, aside from the actual filename of course!


In reply to Re: Digest::MD5 seems to slow down script by Marshall
in thread Digest::MD5 seems to slow down script by PerlScholar

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.