@@ -1,25 +1,31 @@ package main import ( + pprof "0dev.org/debug/pprof" iou "0dev.org/ioutil" predictor "0dev.org/predictor" - "bufio" + // "bufio" "fmt" "io" "os" ) func main() { + var code int switch { case len(os.Args) == 1: - os.Exit(compress(os.Stdout, os.Stdin)) + code = compress(os.Stdout, os.Stdin) case len(os.Args) == 2 && os.Args[1] == "-d": - os.Exit(decompress(os.Stdout, os.Stdin)) + code = decompress(os.Stdout, os.Stdin) default: fmt.Fprintln(os.Stdout, "Usage: pdc [-d]") } + + pprof.Stop() + + os.Exit(code) } // Compress the data from the given io.Reader and write it to the given io.Writer // I/O is buffered for better performance func compress(output io.Writer, input io.Reader) int { @@ -56,11 +62,12 @@ // I/O is buffered for better performance func decompress(output io.Writer, input io.Reader) int { var ( err error buffer io.Writer = iou.SizedWriter(output, 4096) - decompressor io.Reader = predictor.Decompressor(bufio.NewReader(input)) + decompressor io.Reader = predictor.Decompressor(iou.SizedReader(input, 4096)) + //decompressor io.Reader = predictor.Decompressor(bufio.NewReader(input)) ) _, err = io.Copy(buffer, decompressor) if err != nil { fmt.Fprintln(os.Stderr, "Error while decompressing.\n", err)