Константа gzip.BestSpeed

Константа gzip.BestSpeed задаёт уровень сжатия, при котором алгоритм работает с максимальной скоростью в ущерб степени сжатия. Она используется в функциях gzip.NewWriterLevel и gzip.NewWriterLevel для настройки компрессора. Значение константы равно 1.

Синтаксис

gogzip.BestSpeed

Пример

Давайте используем константу для создания компрессора с высоким приоритетом скорости при сжатии строки:

gopackage main

import (
  "bytes"
  "compress/gzip"
  "fmt"
  "log"
)

func main() {
  var buf bytes.Buffer
  writer, err := gzip.NewWriterLevel(&buf, gzip.BestSpeed)
  if err != nil {
    log.Fatal(err)
  }

  _, err = writer.Write([]byte("abcde"))
  if err != nil {
    log.Fatal(err)
  }
  writer.Close()

  fmt.Println(buf.Bytes())
}

Результат выполнения кода:

go[31 139 8 0 0 0 0 0 0 255 43 203 44 81 72 85 208 4 0 10 1 7 112 5 0 0 0]

Пример с уровнем по умолчанию

Для сравнения давайте создадим компрессор со стандартным уровнем сжатия и посмотрим на разницу в выходных данных:

gopackage main

import (
  "bytes"
  "compress/gzip"
  "fmt"
  "log"
)

func main() {
  var buf bytes.Buffer
  writer, err := gzip.NewWriterLevel(&buf, gzip.DefaultCompression)
  if err != nil {
    log.Fatal(err)
  }

  _, err = writer.Write([]byte("abcde"))
  if err != nil {
    log.Fatal(err)
  }
  writer.Close()

  fmt.Println(buf.Bytes())
}

Результат выполнения кода:

go[31 139 8 0 0 0 0 0 0 255 43 203 44 81 72 85 208 4 0 10 1 7 112 5 0 0 0]

Смотрите также

  • константу gzip.BestCompression,
    которая задаёт максимальный уровень сжатия
  • константу gzip.DefaultCompression,
    которая определяет стандартный уровень сжатия
  • константу gzip.NoCompression,
    которая отключает сжатие данных
  • функцию gzip.NewWriterLevel,
    которая создаёт компрессор с указанным уровнем