Как я могу сравнить оригинальную версию gzip-текста с точки зрения размера байта - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть фрагмент кода, который упакован в строку, а затем считывает сжатую версию обратно в исходную.

Как измерить уровень сжатия?т.е. считать байты строки до и после?

    sentence := "A long time ago in a galaxy far, far away..."

    var buf bytes.Buffer
    zw := gzip.NewWriter(&buf)

    // Setting the Header fields is optional.
    zw.Name = "a-new-hope.txt"
    zw.Comment = "an epic space opera by George Lucas"
    zw.ModTime = time.Date(1977, time.May, 25, 0, 0, 0, 0, time.UTC)

    _, err := zw.Write([]byte(sentence))
    if err != nil {
        log.Fatal(err)
    }

    if err := zw.Close(); err != nil {
        log.Fatal(err)
    }

У меня есть этот код на игровой площадке https://play.golang.org/p/9T2BOpCFmar

1 Ответ

0 голосов
/ 15 декабря 2018

До размера:

fmt.Println(len(sentence))

После размера:

fmt.Println(buf.Len())

Обязательно вызовите buf.Len () перед закрытием пишущего устройства

...