Code Monkey home page Code Monkey logo

fdtree's Introduction

/******************************************************************************\
*                                                                              *
*        Copyright (c) 2004, The Regents of the University of California       *
*      See the file COPYRIGHT for a complete copyright notice and license.     *
*                                                                              *
\******************************************************************************/

             FILE AND DIRECTORY TREE CREATION/REMOVAL TIMING TEST
********************************** WARNING ON ******************************
BE VERY CAREFUL WITH THIS TEST AS IT CAN CREATE A VERY LARGE DIRECTORY TREE
AND A GREAT DEAL OF DATA SIMPLY BY CHOOSING THE WRONG PARAMATERS.  STAY WITH
THE DEFAULTS UNTIL YOU UNDERSTAND THE PARAMATERS...
********************************** WARNING OFF *****************************

This script recursively creates level_depth directories below pathname with 
files_per_dir files in every directory of size size_of_files.  
Every directory except leaf directories then have dirs_per_level 
subdirectories and so on.  Default starting point is "LEVEL0" directory in
the current working directory.
The directories are created first, by recursion and then the files in each
directory are created by writing to them by another recursion.  
Then the files are deleted by another recursion. 
Finally the directories are removed by recursion.  
Times for each operation are reported.

Written by Mark K. Seager ([email protected], 925-423-3141) and
           Bill Loewe ([email protected], 925-422-5587)

********************************************************************************

fdtree.bash [-C] [-D] [-R] [-l level_depth] [-d dirs_per_level]
	    [-f files_per_dir] [-s size_of_files (in file system blocks)]
	    [-o pathname]
	    -C create structure only
	    -D turns on debugging
	    -R remove structure only
	    -l is the number of recursive levels below LEVEL0
	    -d is the number of directories to create per level
	    -f is the number of files to create per directory
	    -o is the starting directory pathname
	    -s is the file size (in blocks, 4096 for Linux, to create)

WARNING: directories and files created increases polynomically with -l.
Be careful, very careful.  Your filesystem may suffer...

EXAMPLE: fdtree.bash -d 1 -l 2 -f 10000 -s 10000
	This example is a file stress test and creates two levels with one
	directory each and 10K files in each directory of size 10K*4K blocks.
	This is 40,960,000B = 40.96 MB of data per file
	or 2*409,600,000,000B = 819.2 GB of data.
	You should NOT attempt this at home...

EXAMPLE: fdtree.bash -d 10000 -l 100
	This is a directory stress test and creates 100 levels with
	10K directories per level.
	This is 10K directories in the first level and
	(10K)*(10K) directories in the second level and
	(10K)*(10K)*(10K) directories in the third level and so on.
	10K**100 = 10**500 directories at the 100th level.
	You should NOT attempt this at home OR work...

********************************************************************************

sample output:
% time fdtree.bash -f 3 -d 5
fdtree: starting at ./LEVEL0
	creating 4 directory levels with 5 directories at each level
	for a total of 781 directories
	with 3 files of size 40 KiB per directory
	for a total of 2343 files and 9372 KiB

Thu Jun 10 11:07:55 2004
DIRECTORY CREATE TIME IN, OUT, TOTAL	= 0, 0, 0
	Directory creates per second	= 1114

Thu Jun 10 11:07:55 2004
FILE CREATE TIME IN, OUT, TOTAL	= 0, 11, 10
	File creates per second		= 72
	KiB per second			= 875

Thu Jun 10 11:08:06 2004
FILE REMOVE TIME IN, OUT, TOTAL	= 11, 14, 3
	File removals per second	= 684

Thu Jun 10 11:08:09 2004
DIRECTORY REMOVE TIME IN, OUT, TOTAL	= 14, 15, 0
	Directory removals per second	= 2790

Thu Jun 10 11:08:10 2004
0.310u 1.020s 0:15.52 8.5%	0+0k 0+0io 400pf+0w

fdtree's People

Contributors

ianlee1521 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.