if this is to use a nagios style check for a directories size, you could do something like the following
You can have this cron entry:
*/5 * * * * root du -s /path/to/some/dir > /tmp/directory_usage.tmp && /bin/mv /tmp/directory_usage.tmp /tmp/directory_usage
Then you can just use a script to get the contents of /tmp/directory_usage instantly.
Obviously there will be a race condition if the directory starts getting very large. (ie du -s starts to take near the 5 minute mark.)
Another route is to use find to build a list of file sizes in a directory and store that into either a flat file or a file db (if you plan on doing lots of directories simultaneously)
and one last way is to use find to get a list of files periodically that's modified time is more recent than the last run and essentially 'synchronise' file sizes to a db structure...
obviously this all depends on what your trying to achieve by your question