Giter VIP home page Giter VIP logo

ubcopy's Introduction

UBCopy is a file copy tool written in 100% managed code. What makes it different is its speed. While not as fast as a native application written in C or C++ it is very close. This was put together as a proof of concept initially to prove that you can get some performance from managed code and file I/O. Now includes the ability to do mult-threaded file copy with a configurable setting on what is a small file minimum small file size is 1 megabyte.

UBCopy 1.7.11.17
File Copy Started
File Copy Done
File Size MB     : 869.63
Elapsed Seconds  : 1.306
Megabytes/sec    : 698.22
Done.
 
FastCopy 2.08 -- http://ipmsg.org/tools/fastcopy.html.en
TotalRead = 869.6 MB
TotalWrite = 869.6 MB
TotalFiles = 1 (0)
TotalTime= 1.12 sec
TransRate= 774.38 MB/s
FileRate  = 0.89 files/s

UBCopy 1.7.41.24
Single Thread doing the work on small files
[9936] - ElapsedSeconds      : 10.089
[9936] - Files Per Second    : 10.7047279214987
[9936] - Megabytes per Second: 3.68395417896202
[9936] - Number of Byes Copied : 38972858
[9936] - Elapsed Seconds  : 10.141
[9936] - Done.

UBCopy 1.7.41.24
Eight Threads doing the work on small files. 
[11076] - ElapsedSeconds      : 1.059
[11076] - Files Per Second    : 101.983002832861
[11076] - Megabytes per Second: 35.0967079429158
[11076] - Number of Byes Copied : 38972858
[11076] - Elapsed Seconds  : 1.105
[11076] - Done.

This sample test copy was done on an HP DL380G7 with 96 15k SAS drives attached to two P411 Controllers and one Fusion-io Duo 640. The file was read from the Fusion-io card and written to the storage array. I tested on such a high end system to make sure I was working through all the potential bottlenecks in the code.
You can also read about it in this blog post http://sqlserverio.com/2010/10/07/at-the-end-of-the-io-road-with-c-pave-new-road/ 

UBCopy 1.7.41.24
Usage: UBCopy [OPTIONS]
Copy files using un-buffered IO and Overlapping buffers

Options:
  -s, --sourcefile[=VALUE]   The file you wish to copy
  -d, --destinationfile[=VALUE]
                             The target file you wish to write
  -o, --overwritedestination[=VALUE]
                             True if you want to overwrite the destination
                               file if it exists
  -m, --movefile[=VALUE]     True if you want to copy the file to new
                               location and delete from the old location
  -c, --checksum[=VALUE]     True if you want use MD5 hash to verify the
                               destination file is the same as the source file
  -b, --buffersize[=VALUE]   size in Megabytes, maximum of 32
  -t, --threads[=VALUE]      number of threads to use for small file copying
  -z, --filesize[=VALUE]     smallest file size for threaded copy, in
                               megabytes
  -r, --reportprogress[=VALUE]
                             True give a visual indicator of the copy progress
  -?, -h, --help             show this message and exit

ubcopy's People

Contributors

sqlserverio avatar texasassetprotection avatar

Watchers

James Huang 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.