Size: a a a

Scala User Group

2020 May 08

GP

Grigory Pomadchin in Scala User Group
Vyatcheslav Suharnikov
по поводу scodec - зависит от того, как часто ты будешь делать такие преобразования и насколько сложные у тебя структуры. Мы делали тесты на десерилизацию через scodec на вложенных структурах. Вычитка вручную через ByteBuffer оказалась быстрее в 20 раз в jmh тестах 🙂 Затык оказался в их ByteVector
А когда бенчмарк делали?
источник

VS

Vyatcheslav Suharnik... in Scala User Group
@pomadchin 5 июня 2019 года судя по JIRA
источник

GP

Grigory Pomadchin in Scala User Group
блин свежо; спасибо
источник

GP

Grigory Pomadchin in Scala User Group
тоже нужен байт вектор
источник

Oℕ

Oleg ℕizhnik in Scala User Group
newtype ByteVector = Array[Byte]
источник

GP

Grigory Pomadchin in Scala User Group
Oleg ℕizhnik
newtype ByteVector = Array[Byte]
Спасибо, помог
источник

Oℕ

Oleg ℕizhnik in Scala User Group
не благодари, судьба дай бог сведёт, расчитаемся
источник

VS

Vyatcheslav Suharnik... in Scala User Group
даже не знаю, как воспринимать 😄 сарказм? Там на самом деле вот такие результаты были:
[info] Benchmark   Mode  Cnt       Score       Error  Units
[info] ByteBuffer  avgt   10   24889.131 ±   615.592  ns/op
[info] scodec      avgt   10  478709.411 ± 17253.767  ns/op

Заметьте, тут наносекунды 🙂 Тестировалось на рекурсивных структурах, глубиной в 100 уровней. Я просто боюсь, вы меня послушаете и будете всем говорить, что scodec - фигня ) но ведь все познается в тестах. Кого-то такое устроит, кого-то нет
источник

λ

λoλdog in Scala User Group
это десереализация чего-то ?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
а это время чего?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
это именно десериализация?
источник

GP

Grigory Pomadchin in Scala User Group
Vyatcheslav Suharnikov
даже не знаю, как воспринимать 😄 сарказм? Там на самом деле вот такие результаты были:
[info] Benchmark   Mode  Cnt       Score       Error  Units
[info] ByteBuffer  avgt   10   24889.131 ±   615.592  ns/op
[info] scodec      avgt   10  478709.411 ± 17253.767  ns/op

Заметьте, тут наносекунды 🙂 Тестировалось на рекурсивных структурах, глубиной в 100 уровней. Я просто боюсь, вы меня послушаете и будете всем говорить, что scodec - фигня ) но ведь все познается в тестах. Кого-то такое устроит, кого-то нет
не сарказм был; спасибо что сказал что бенчил байтвектор; повнимательнее надо будет тоже с ним
источник

VS

Vyatcheslav Suharnik... in Scala User Group
да, десерилизация
источник

λ

λoλdog in Scala User Group
вообще не очень правда подобно выглядит
источник

Oℕ

Oleg ℕizhnik in Scala User Group
по чему
источник

λ

λoλdog in Scala User Group
по тому
источник

VS

Vyatcheslav Suharnik... in Scala User Group
@Benchmark

 def deserialize_test(st: St, bh: Blackhole): Unit = bh.consume(Serde.deserialize(st.serializedExpr))

ну вот так тест примерно выглядит. В одном случае это scodec был, вдругом кастомная десерилизация через байт-буффер
источник

VS

Vyatcheslav Suharnik... in Scala User Group
@State(Scope.Benchmark)
 class St extends BigSum {
   val serializedExpr: Array[Byte] = Serde.serialize(expr)
 }
источник

VS

Vyatcheslav Suharnik... in Scala User Group
может, мы не правильно тестили 😄 даже не знаю.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
inb4 Николай: вы плохо кодек написали
источник