java.nio.charset.StandardCharsets.UTF_8 Scala Examples
The following examples show how to use java.nio.charset.StandardCharsets.UTF_8.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: Platform.scala From coursier with Apache License 2.0 | 5 votes |
package coursier import java.io._ import java.nio.charset.StandardCharsets.UTF_8 import coursier.cache.CacheUrl import coursier.util.{EitherT, Sync, Task} import scala.util.{Failure, Success, Try} object Platform { def readFullySync(is: InputStream) = { val buffer = new ByteArrayOutputStream() val data = Array.ofDim[Byte](16384) var nRead = is.read(data, 0, data.length) while (nRead != -1) { buffer.write(data, 0, nRead) nRead = is.read(data, 0, data.length) } buffer.flush() buffer.toByteArray } def readFully[F[_]: Sync](is: => InputStream): F[Either[String, String]] = Sync[F].delay { val t = Try { val is0 = is val b = try readFullySync(is0) finally is0.close() new String(b, UTF_8) } t match { case Success(r) => Right(r) case Failure(e: java.io.FileNotFoundException) if e.getMessage != null => Left(s"Not found: ${e.getMessage}") case Failure(e) => Left(s"$e${Option(e.getMessage).fold("")(" (" + _ + ")")}") } } val artifact: Repository.Fetch[Task] = { artifact => EitherT { val conn = CacheUrl.urlConnection(artifact.url, artifact.authentication) readFully[Task](conn.getInputStream) } } def fetch( repositories: Seq[core.Repository] ): ResolutionProcess.Fetch[Task] = ResolutionProcess.fetch(repositories, Platform.artifact) }
Example 2
Source File: PythonGatewayServer.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.api.python import java.io.{DataOutputStream, File, FileOutputStream} import java.net.InetAddress import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.Files import py4j.GatewayServer import org.apache.spark.SparkConf import org.apache.spark.internal.Logging import org.apache.spark.util.Utils private[spark] object PythonGatewayServer extends Logging { initializeLogIfNecessary(true) def main(args: Array[String]): Unit = { val secret = Utils.createSecret(new SparkConf()) // Start a GatewayServer on an ephemeral port. Make sure the callback client is configured // with the same secret, in case the app needs callbacks from the JVM to the underlying // python processes. val localhost = InetAddress.getLoopbackAddress() val gatewayServer: GatewayServer = new GatewayServer.GatewayServerBuilder() .authToken(secret) .javaPort(0) .javaAddress(localhost) .callbackClient(GatewayServer.DEFAULT_PYTHON_PORT, localhost, secret) .build() gatewayServer.start() val boundPort: Int = gatewayServer.getListeningPort if (boundPort == -1) { logError("GatewayServer failed to bind; exiting") System.exit(1) } else { logDebug(s"Started PythonGatewayServer on port $boundPort") } // Communicate the connection information back to the python process by writing the // information in the requested file. This needs to match the read side in java_gateway.py. val connectionInfoPath = new File(sys.env("_PYSPARK_DRIVER_CONN_INFO_PATH")) val tmpPath = Files.createTempFile(connectionInfoPath.getParentFile().toPath(), "connection", ".info").toFile() val dos = new DataOutputStream(new FileOutputStream(tmpPath)) dos.writeInt(boundPort) val secretBytes = secret.getBytes(UTF_8) dos.writeInt(secretBytes.length) dos.write(secretBytes, 0, secretBytes.length) dos.close() if (!tmpPath.renameTo(connectionInfoPath)) { logError(s"Unable to write connection information to $connectionInfoPath.") System.exit(1) } // Exit on EOF or broken pipe to ensure that this process dies when the Python driver dies: while (System.in.read() != -1) { // Do nothing } logDebug("Exiting due to broken pipe from Python driver") System.exit(0) } }
Example 3
Source File: SocketAuthHelper.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.security import java.io.{DataInputStream, DataOutputStream, InputStream} import java.net.Socket import java.nio.charset.StandardCharsets.UTF_8 import org.apache.spark.SparkConf import org.apache.spark.network.util.JavaUtils import org.apache.spark.util.Utils def authToServer(s: Socket): Unit = { writeUtf8(secret, s) val reply = readUtf8(s) if (reply != "ok") { JavaUtils.closeQuietly(s) throw new IllegalArgumentException("Authentication failed.") } } protected def readUtf8(s: Socket): String = { val din = new DataInputStream(s.getInputStream()) val len = din.readInt() val bytes = new Array[Byte](len) din.readFully(bytes) new String(bytes, UTF_8) } protected def writeUtf8(str: String, s: Socket): Unit = { val bytes = str.getBytes(UTF_8) val dout = new DataOutputStream(s.getOutputStream()) dout.writeInt(bytes.length) dout.write(bytes, 0, bytes.length) dout.flush() } }
Example 4
Source File: WriteTree.scala From guardrail with MIT License | 5 votes |
package com.twilio.guardrail import cats.data.{ Writer, WriterT } import cats.implicits._ import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{ Files, Path, StandardOpenOption } import scala.io.AnsiColor import scala.concurrent.Future import scala.concurrent.Await import scala.concurrent.duration.Duration sealed trait WriteTreeState case object FileAbsent extends WriteTreeState case object FileDifferent extends WriteTreeState case object FileIdentical extends WriteTreeState case class WriteTree(path: Path, contents: Future[Array[Byte]]) object WriteTree { val unsafeWriteTreeLogged: WriteTree => Writer[List[String], Path] = { case WriteTree(path, dataF) => val _ = Files.createDirectories(path.getParent) val data = Await.result(dataF, Duration.Inf) for { writeState <- if (Files.exists(path)) { val exists: Array[Byte] = Files.readAllBytes(path) val diffIdx: Option[Int] = exists .zip(data) .zipWithIndex .find({ case ((a, b), _) => a != b }) .map(_._2) .orElse(Some(Math.max(exists.length, data.length))) .filterNot(Function.const(data.length == exists.length)) diffIdx.fold[Writer[List[String], WriteTreeState]](Writer.value(FileIdentical))({ diffIdx => val existSample = new String(exists, UTF_8) .slice(Math.max(diffIdx - 10, diffIdx), Math.max(diffIdx - 10, diffIdx) + 50) .replace("\n", "\\n") val newSample = new String(data, UTF_8) .slice(Math.max(diffIdx - 10, diffIdx), Math.max(diffIdx - 10, diffIdx) + 50) .replace("\n", "\\n") Writer.tell(List(s"""| |${AnsiColor.RED}Warning:${AnsiColor.RESET} | The file $path contained different content than was expected. | | Existing file: $existSample | New file : $newSample |""".stripMargin)) >> Writer.value(FileDifferent) }) } else Writer.value[List[String], WriteTreeState](FileAbsent) } yield writeState match { case FileAbsent => Files.write(path, data, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING) case FileDifferent => Files.write(path, data, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING) case FileIdentical => path } } val unsafeWriteTree: WriteTree => Path = unsafeWriteTreeLogged.map { case WriterT((lines, path)) => lines.foreach(System.err.println(_)) path } }
Example 5
Source File: CirceSerializationSpec.scala From kafka-serialization with Apache License 2.0 | 5 votes |
package com.ovoenergy.kafka.serialization.circe import java.nio.charset.StandardCharsets.UTF_8 import com.ovoenergy.kafka.serialization.testkit.UnitSpec import com.ovoenergy.kafka.serialization.testkit.UnitSpec._ import io.circe.generic.auto._ import io.circe.parser._ import io.circe.syntax._ class CirceSerializationSpec extends UnitSpec with CirceSerialization { "CirceSerialization" when { "serializing" should { "write the Json body" in forAll { event: Event => val serializer = circeJsonSerializer[Event] val bytes = serializer.serialize("Does not matter", event) parse(new String(bytes, UTF_8)) shouldBe Right(event.asJson) } } "deserializing" should { "parse the json" in forAll { event: Event => val jsonBytes = event.asJson.noSpaces.getBytes(UTF_8) val deserializer = circeJsonDeserializer[Event] val deserialized = deserializer.deserialize("does not matter", jsonBytes) deserialized shouldBe event } } } }
Example 6
Source File: JsonProducerSpec.scala From skafka with MIT License | 5 votes |
package com.evolutiongaming.skafka.producer import java.nio.charset.StandardCharsets.UTF_8 import com.evolutiongaming.skafka.{Bytes, Partition, ToBytes, TopicPartition} import play.api.libs.json.{JsString, Json} import org.scalatest.funsuite.AnyFunSuite import org.scalatest.matchers.should.Matchers class JsonProducerSpec extends AnyFunSuite with Matchers { test("apply") { val metadata = RecordMetadata(TopicPartition("topic", Partition.min)) var actual = Option.empty[(Option[Bytes], Option[Bytes])] type Id[A] = A val send = new Producer.Send[Id] { def apply[K, V]( record: ProducerRecord[K, V])(implicit toBytesK: ToBytes[Id, K], toBytesV: ToBytes[Id, V] ) = { val topic = record.topic val value = record.value.map(toBytesV(_, topic)) val key = record.key.map(toBytesK(_, topic)) actual = Some((key, value)) metadata } } val producer = JsonProducer(send) val value = JsString("value") val key = "key" val record = ProducerRecord("topic", value, key) producer(record) shouldEqual metadata val (Some(keyBytes), valueBytes) = actual.get new String(keyBytes, UTF_8) shouldEqual key valueBytes.map(Json.parse) shouldEqual Some(value) } }
Example 7
Source File: ExtractFromParquet.scala From CM-Well with Apache License 2.0 | 5 votes |
package cmwell.analytics.data import java.io.File import java.nio.charset.StandardCharsets.UTF_8 import cmwell.analytics.util.Connector import cmwell.analytics.util.StringUtil._ import org.apache.commons.io.FileUtils import org.apache.spark.sql.{DataFrame, Row, SparkSession} import org.rogach.scallop.{ScallopConf, ScallopOption} object ExtractFromParquet { def main(args: Array[String]): Unit = { object Opts extends ScallopConf(args) { val pathsToFind: ScallopOption[String] = opt[String]("paths-to-find", short = 'f', descr = "A file containing the list of paths to look for", required = true) val parquetData: ScallopOption[String] = opt[String]("parquet-file", short = 'p', descr = "A Parquet file containing the data; single string column rdfStatement", required = true) val extractedData: ScallopOption[String] = opt[String]("extracted-data", short = 'd', descr = "The file that extracted data will be written to (in nquads format)", required = true) val pathsNotFound: ScallopOption[String] = opt[String]("paths-not-found", short = 'n', descr = "The output file that any paths that were not found are written to", required = true) val pathsFound: ScallopOption[String] = opt[String]("paths-found", short = 'a', descr = "The output file containing the paths that we found are written to", required = true) verify() } Connector(sparkShell = true, appName = "Extract from parquet").withSparkSessionDo { spark: SparkSession => val pathsToFind = Set(splitLines(FileUtils.readFileToString(new File(Opts.pathsToFind()), UTF_8)): _*) val ds: DataFrame = spark.read.parquet(Opts.parquetData()) // Cheesy parsing of path from an RDF nquad, but sufficient for this purpose def extractPath(rdfStatement: String): String = rdfStatement.substring(7, rdfStatement.indexOf(">")) val statementsFound = ds.rdd.filter { row: Row => val statement = row.getAs[String]("rdfStatement") val path = extractPath(statement) pathsToFind.contains(path) }.collect() // expect the result to be small, so collect is OK // Save all the paths that were not found to file - look for them in other files. val pathsFound: Set[String] = Set(statementsFound.map(row => extractPath(row.getString(0))): _*) println(s"There were ${pathsFound.size} paths found (out of ${pathsToFind.size}).") FileUtils.writeStringToFile(new File(Opts.pathsFound()), pathsFound.mkString("\n"), UTF_8, false) val pathsNotFound = pathsToFind.diff(pathsFound) println(s"There were ${pathsNotFound.size} paths not found.") FileUtils.writeStringToFile(new File(Opts.pathsNotFound()), pathsNotFound.mkString("\n"), UTF_8, false) // Save the RDF statements for the paths that were found val x = statementsFound.map(row => row.getString(0)).mkString("\n") FileUtils.writeStringToFile(new File(Opts.extractedData()), x, UTF_8, false) } } }
Example 8
Source File: AnalyzeInconsistenciesResult.scala From CM-Well with Apache License 2.0 | 5 votes |
package cmwell.analytics.main import java.io.File import java.nio.charset.StandardCharsets.UTF_8 import cmwell.analytics.data.InfotonAndIndexWithSystemFields import cmwell.analytics.util.Connector import org.apache.commons.io.FileUtils import org.apache.log4j.LogManager import org.apache.spark.sql.{Column, DataFrame, Row} import org.rogach.scallop.{ScallopConf, ScallopOption} import scala.collection.breakOut object AnalyzeInconsistenciesResult { def main(args: Array[String]): Unit = { val logger = LogManager.getLogger(AnalyzeInconsistenciesResult.getClass) try { object Opts extends ScallopConf(args) { val in: ScallopOption[String] = opt[String]("in", short = 'i', descr = "The path to read the (parquet) inconsistencies dataset from", required = true) val out: ScallopOption[String] = opt[String]("out", short = 'o', descr = "The path to save the (csv) output to", required = true) val shell: ScallopOption[Boolean] = opt[Boolean]("spark-shell", short = 's', descr = "Run a Spark shell", required = false, default = Some(false)) verify() } Connector( appName = "Analyze InfotonAndIndexWithSystemFields Output", sparkShell = Opts.shell() ).withSparkSessionDo { spark => val ds: DataFrame = spark.read.parquet(Opts.in()) import org.apache.spark.sql.functions._ // A column expression that counts the number of failures for each constraint. // This will also include null counts, needed to interpret the results. val constraints: Seq[(String, Column)] = InfotonAndIndexWithSystemFields.constraints(ds).map { case (name, predicate) => name -> sum(when(predicate, 0L).otherwise(1L)).as(name) }(breakOut) // Compute the failure counts val failureCounts: Row = ds.agg(constraints.head._2, constraints.tail.map(_._2): _*).head val results = for { i <- constraints.indices constraintName = constraints(i)._1 failureCount = if (failureCounts.isNullAt(i)) 0 else failureCounts.getAs[Long](i) } yield s"$constraintName,$failureCount" FileUtils.write(new File(Opts.out()), "constraint,failures\n" + results.mkString("\n"), UTF_8) } } catch { case ex: Throwable => logger.error(ex.getMessage, ex) System.exit(1) } } }
Example 9
Source File: HadoopFileSystemLogStore.scala From delta with Apache License 2.0 | 5 votes |
package org.apache.spark.sql.delta.storage import java.io.{BufferedReader, FileNotFoundException, InputStreamReader} import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.FileAlreadyExistsException import java.util.UUID import scala.collection.JavaConverters._ import org.apache.commons.io.IOUtils import org.apache.hadoop.conf.Configuration import org.apache.hadoop.fs.{FileStatus, FileSystem, Path} import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.SparkSession protected def writeWithRename( path: Path, actions: Iterator[String], overwrite: Boolean = false): Unit = { val fs = path.getFileSystem(getHadoopConfiguration) if (!fs.exists(path.getParent)) { throw new FileNotFoundException(s"No such file or directory: ${path.getParent}") } if (overwrite) { val stream = fs.create(path, true) try { actions.map(_ + "\n").map(_.getBytes(UTF_8)).foreach(stream.write) } finally { stream.close() } } else { if (fs.exists(path)) { throw new FileAlreadyExistsException(path.toString) } val tempPath = createTempPath(path) var streamClosed = false // This flag is to avoid double close var renameDone = false // This flag is to save the delete operation in most of cases. val stream = fs.create(tempPath) try { actions.map(_ + "\n").map(_.getBytes(UTF_8)).foreach(stream.write) stream.close() streamClosed = true try { if (fs.rename(tempPath, path)) { renameDone = true } else { if (fs.exists(path)) { throw new FileAlreadyExistsException(path.toString) } else { throw new IllegalStateException(s"Cannot rename $tempPath to $path") } } } catch { case _: org.apache.hadoop.fs.FileAlreadyExistsException => throw new FileAlreadyExistsException(path.toString) } } finally { if (!streamClosed) { stream.close() } if (!renameDone) { fs.delete(tempPath, false) } } } } protected def createTempPath(path: Path): Path = { new Path(path.getParent, s".${path.getName}.${UUID.randomUUID}.tmp") } override def invalidateCache(): Unit = {} }
Example 10
Source File: package.scala From coursier with Apache License 2.0 | 5 votes |
package coursier.test import java.io.{File, FileInputStream} import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{Files, Paths} import coursier.cache.MockCache import coursier.core.Repository import coursier.paths.Util import coursier.util.{Sync, Task} import coursier.Platform import scala.concurrent.{ExecutionContext, Future} package object compatibility { private val pool = Sync.fixedThreadPool(6) implicit val executionContext = scala.concurrent.ExecutionContext.fromExecutorService(pool) def textResource(path: String)(implicit ec: ExecutionContext): Future[String] = Future { val f = new File("modules/tests/shared/src/test/resources/" + path) var is0: FileInputStream = null try { is0 = new FileInputStream(f) new String(Platform.readFullySync(is0), UTF_8) } finally { if (is0 != null) is0.close() } } private val baseRepo = { val dir = Paths.get("modules/tests/metadata") assert(Files.isDirectory(dir)) dir } private val fillChunks = Option(System.getenv("FETCH_MOCK_DATA")) .exists(s => s == "1" || s == "true") def artifact[F[_]: Sync]: Repository.Fetch[F] = MockCache.create[F](baseRepo, writeMissing = fillChunks, pool = pool).fetch val taskArtifact = artifact[Task] private lazy val baseResources = { val dir = Paths.get("modules/tests/shared/src/test/resources") assert(Files.isDirectory(dir)) dir } def tryCreate(path: String, content: String): Unit = if (fillChunks) { val path0 = baseResources.resolve(path) Util.createDirectories(path0.getParent) Files.write(path0, content.getBytes(UTF_8)) } }
Example 11
Source File: RBackendAuthHandler.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.api.r import java.io.{ByteArrayOutputStream, DataOutputStream} import java.nio.charset.StandardCharsets.UTF_8 import io.netty.channel.{Channel, ChannelHandlerContext, SimpleChannelInboundHandler} import org.apache.spark.internal.Logging import org.apache.spark.util.Utils private class RBackendAuthHandler(secret: String) extends SimpleChannelInboundHandler[Array[Byte]] with Logging { override def channelRead0(ctx: ChannelHandlerContext, msg: Array[Byte]): Unit = { // The R code adds a null terminator to serialized strings, so ignore it here. val clientSecret = new String(msg, 0, msg.length - 1, UTF_8) try { require(secret == clientSecret, "Auth secret mismatch.") ctx.pipeline().remove(this) writeReply("ok", ctx.channel()) } catch { case e: Exception => logInfo("Authentication failure.", e) writeReply("err", ctx.channel()) ctx.close() } } private def writeReply(reply: String, chan: Channel): Unit = { val out = new ByteArrayOutputStream() SerDe.writeString(new DataOutputStream(out), reply) chan.writeAndFlush(out.toByteArray()) } }
Example 12
Source File: TarFlow.scala From nexus with Apache License 2.0 | 5 votes |
package ch.epfl.bluebrain.nexus.storage import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{Files, Path} import akka.NotUsed import akka.stream.scaladsl.{FileIO, Flow, Source} import akka.util.ByteString import org.apache.commons.compress.archivers.tar.{TarArchiveEntry, TarConstants} def writer(basePath: Path): Flow[Path, ByteString, NotUsed] = Flow[Path] .flatMapConcat { case path if Files.isRegularFile(path) => val headerSource = Source.single(headerBytes(basePath, path)) val paddingSource = Source.single(padToBoundary(path)) headerSource.concat(FileIO.fromPath(path)).concat(paddingSource) case path => Source.single(headerBytes(basePath, path)) } .concat(Source.single(terminalChunk)) }
Example 13
Source File: PctString.scala From nexus with Apache License 2.0 | 5 votes |
package ch.epfl.bluebrain.nexus.rdf import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 import org.parboiled2.CharPredicate object PctString { private val UTF8 = UTF_8.displayName() private[rdf] def pctEncodedIgnore(s: String, toIgnore: CharPredicate): String = { val (_, encoded) = s.foldLeft((0, new StringBuilder())) { case ((forceIgnore, sb), b) if forceIgnore > 0 => (forceIgnore - 1, sb.append(b)) case ((_, sb), b) if toIgnore.matchesAny(b.toString) => (0, sb.append(b)) case ((_, sb), b) if b == '%' => (2, sb.append(b)) case ((_, sb), b) => (0, pctEncode(sb, b)) } encoded.toString() } private def pctEncode(sb: StringBuilder, char: Char): StringBuilder = if (char == ' ') sb.append("%20") else sb.append(URLEncoder.encode(char.toString, UTF8)) implicit final class StringEncodingOpts(private val value: String) extends AnyVal { def pctEncodeIgnore(toIgnore: CharPredicate): String = pctEncodedIgnore(value, toIgnore) } }
Example 14
Source File: CommandExecutor.scala From renku with Apache License 2.0 | 5 votes |
package ch.renku.acceptancetests.tooling.console import java.io.{File, InputStream} import java.nio.file.Path import java.util import java.util.concurrent.ConcurrentLinkedQueue import cats.effect.IO import cats.implicits._ import ch.renku.acceptancetests.model.users.UserCredentials import ch.renku.acceptancetests.tooling.TestLogger.logger import ch.renku.acceptancetests.tooling.console.Command.UserInput import scala.jdk.CollectionConverters._ import scala.language.postfixOps import scala.sys.process._ private class CommandExecutor(command: Command) { def execute(implicit workPath: Path, userCredentials: UserCredentials): String = { implicit val output: util.Collection[String] = new ConcurrentLinkedQueue[String]() IO { executeCommand output.asString } recoverWith consoleException }.unsafeRunSync() def safeExecute(implicit workPath: Path, userCredentials: UserCredentials): String = { implicit val output: util.Collection[String] = new ConcurrentLinkedQueue[String]() IO { executeCommand output.asString } recover outputAsString }.unsafeRunSync() private def executeCommand(implicit workPath: Path, output: util.Collection[String], userCredentials: UserCredentials): Unit = command.userInputs.foldLeft(buildProcess) { (process, userInput) => process #< userInput.asStream } lazyLines ProcessLogger(logLine _) foreach logLine private def buildProcess(implicit workPath: Path) = command.maybeFileName.foldLeft(Process(command.toString.stripMargin, workPath.toFile)) { (process, fileName) => process #>> new File(workPath.toUri resolve fileName.value) } private def logLine( line: String )(implicit output: util.Collection[String], userCredentials: UserCredentials): Unit = line.trim match { case "" => () case line => val obfuscatedLine = line.replace(userCredentials.password.value, "###") output add obfuscatedLine logger debug obfuscatedLine } private def consoleException(implicit output: util.Collection[String]): PartialFunction[Throwable, IO[String]] = { case _ => ConsoleException { s"$command failed with:\n${output.asString}" }.raiseError[IO, String] } private def outputAsString(implicit output: util.Collection[String]): PartialFunction[Throwable, String] = { case _ => output.asString } private implicit class OutputOps(output: util.Collection[String]) { lazy val asString: String = output.asScala.mkString("\n") } private implicit class UserInputOps(userInput: UserInput) { import java.nio.charset.StandardCharsets.UTF_8 lazy val asStream: InputStream = new java.io.ByteArrayInputStream( userInput.value.getBytes(UTF_8.name) ) } }
Example 15
Source File: ArrayOfFloatsReadingSpec.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 class ArrayOfFloatsReadingSpec extends BenchmarkSpecBase { def benchmark: ArrayOfFloatsReading = new ArrayOfFloatsReading { private val values: Array[String] = Array( "7.038531e-26", "1.199999988079071", "3.4028235677973366e38", "7.006492321624086e-46" ) setup() jsonString = (obj.map(_.toString) ++ values).mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) obj = obj ++ values.map(_.toFloat) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } "ArrayOfFloatsReading" should { "read properly" in { benchmark.avSystemGenCodec() shouldBe benchmark.obj benchmark.borer() shouldBe benchmark.obj benchmark.circe() shouldBe benchmark.obj //FIXME: DSL-JSON parses 1.199999988079071 as 1.2f instead of 1.1999999f //benchmark.dslJsonScala() shouldBe benchmark.obj //FIXME: Jackson parses 1.199999988079071 as 1.2f instead of 1.1999999f //benchmark.jacksonScala() shouldBe benchmark.obj benchmark.jsoniterScala() shouldBe benchmark.obj benchmark.playJson() shouldBe benchmark.obj benchmark.sprayJson() shouldBe benchmark.obj benchmark.uPickle() shouldBe benchmark.obj //FIXME: weePickle parses 1.199999988079071 as 1.2f instead of 1.1999999f //benchmark.weePickle() shouldBe benchmark.obj } "fail on invalid input" in { val b = benchmark b.jsonBytes(0) = 'x'.toByte intercept[Throwable](b.avSystemGenCodec()) intercept[Throwable](b.borer()) intercept[Throwable](b.circe()) intercept[Throwable](b.jsoniterScala()) intercept[Throwable](b.playJson()) intercept[Throwable](b.sprayJson()) intercept[Throwable](b.uPickle()) } } }
Example 16
Source File: MutableSetOfIntsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class MutableSetOfIntsWriting extends MutableSetOfIntsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 17
Source File: ArrayBufferOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.mutable abstract class ArrayBufferOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: mutable.ArrayBuffer[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = mutable.ArrayBuffer((1 to size).map(i => ((i * 1498724053) & 0x1) == 0):_*) jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 18
Source File: ArrayOfZoneIdsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time._ import org.openjdk.jmh.annotations.{Param, Setup} import scala.jdk.CollectionConverters._ abstract class ArrayOfZoneIdsBenchmark extends CommonParams { val zoneIds: Array[ZoneId] = (ZoneId.getAvailableZoneIds.asScala.take(100).map(ZoneId.of) ++ (1 to 7).map(i => ZoneId.of(s"+0$i:00")) ++ (1 to 7).map(i => ZoneId.of(s"UT+0$i:00")) ++ (1 to 7).map(i => ZoneId.of(s"UTC+0$i:00")) ++ (1 to 7).map(i => ZoneId.of(s"GMT+0$i:00"))).toArray @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[ZoneId] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => zoneIds(i % zoneIds.length)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 19
Source File: ArrayBufferOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayBufferOfBooleansWriting extends ArrayBufferOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 20
Source File: ArrayOfCharsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfCharsReading extends ArrayOfCharsBenchmark { @Benchmark def avSystemGenCodec(): Array[Char] = JsonStringInput.read[Array[Char]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Char] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Char]].value @Benchmark def circe(): Array[Char] = decode[Array[Char]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Char] = jacksonMapper.readValue[Array[Char]](jsonBytes) @Benchmark def jsoniterScala(): Array[Char] = readFromArray[Array[Char]](jsonBytes) @Benchmark def playJson(): Array[Char] = Json.parse(jsonBytes).as[Array[Char]] @Benchmark def sprayJson(): Array[Char] = JsonParser(jsonBytes).convertTo[Array[Char]] @Benchmark def uPickle(): Array[Char] = read[Array[Char]](jsonBytes) @Benchmark def weePickle(): Array[Char] = FromJson(jsonBytes).transform(ToScala[Array[Char]]) }
Example 21
Source File: UpickleSupport.scala From kafka-serde-scala with Apache License 2.0 | 5 votes |
package io.github.azhur.kafkaserdeupickle import java.nio.charset.StandardCharsets.UTF_8 import java.util import org.apache.kafka.common.errors.SerializationException import org.apache.kafka.common.serialization.{ Deserializer, Serde, Serializer } import upickle.default.{ Reader, Writer, read, write } import scala.language.implicitConversions import scala.util.control.NonFatal trait UpickleSupport { implicit def toSerializer[T >: Null](implicit writer: Writer[T]): Serializer[T] = new Serializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serialize(topic: String, data: T): Array[Byte] = if (data == null) null else try write(data).getBytes(UTF_8) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toDeserializer[T >: Null](implicit reader: Reader[T]): Deserializer[T] = new Deserializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def deserialize(topic: String, data: Array[Byte]): T = if (data == null) null else try read(new String(data, UTF_8)) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toSerde[T >: Null](implicit reader: Reader[T], writer: Writer[T]): Serde[T] = new Serde[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serializer(): Serializer[T] = toSerializer[T] override def deserializer(): Deserializer[T] = toDeserializer[T] } } object UpickleSupport extends UpickleSupport
Example 22
Source File: AllCodec.scala From aws-lambda-scala with MIT License | 5 votes |
package io.github.mkotsur.aws.codecs import java.nio.charset.StandardCharsets.UTF_8 import io.circe.generic.auto._ import io.circe.parser.decode import io.circe.syntax._ import io.circe._ import io.github.mkotsur.aws.handler.{CanDecode, CanEncode} import cats.syntax.either.catsSyntaxEither import scala.io.Source import scala.reflect.ClassTag private[aws] trait AllCodec { implicit def canDecodeAll[T: ClassTag](implicit decoder: Decoder[T]) = CanDecode.instance[T]( implicitly[ClassTag[T]] match { case ct if ct.runtimeClass == classOf[String] => is => Right(Source.fromInputStream(is).mkString.asInstanceOf[T]) case _ => is => val string = Source.fromInputStream(is).mkString decode[T](if (string.isEmpty) "null" else string) } ) implicit def canEncodeAll[T: ClassTag](implicit encoder: Encoder[T]) = CanEncode.instance[T]( implicitly[ClassTag[T]] match { case ct if ct.runtimeClass == classOf[String] => (output, handledEither, _) => handledEither.map { s => output.write(s.asInstanceOf[String].getBytes) } case _ => (output, handledEither, _) => handledEither map { handled => val jsonString = handled.asJson.noSpaces output.write(jsonString.getBytes(UTF_8)) } } ) }
Example 23
Source File: package.scala From squid with Apache License 2.0 | 5 votes |
package squid.utils package object serial { // adapted from https://gist.github.com/laughedelic/634f1a1e5333d58085603fcff317f6b4 import java.io._ import java.util.Base64 import java.nio.charset.StandardCharsets.UTF_8 def serialize(value: Any): String = { val stream: ByteArrayOutputStream = new ByteArrayOutputStream() val oos = new ObjectOutputStream(stream) oos.writeObject(value) oos.close new String( Base64.getEncoder().encode(stream.toByteArray), UTF_8 ) } def deserialize(str: String): Any = { val bytes = Base64.getDecoder().decode(str.getBytes(UTF_8)) val ois = new ObjectInputStream(new ByteArrayInputStream(bytes)) val value = ois.readObject ois.close value } }
Example 24
Source File: UTF8EncodingBench.scala From laserdisc with MIT License | 5 votes |
package laserdisc package protocol import java.nio.ByteBuffer import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations._ import scodec.Attempt import scodec.bits.BitVector @State(Scope.Benchmark) @Warmup(time = 1) @Measurement(time = 1) class UTF8EncodingBench { private final val defaultUtf8 = scodec.codecs.utf8 private final val lenientUtf8 = new LenientStringCodec(UTF_8) private final val ok = "OK" private final val okBytes = ok.getBytes(UTF_8) private final val okBitVector = BitVector.view(okBytes) private final val longString = new String(Array.fill(2000)('a')) private final val longStringBytes = longString.getBytes(UTF_8) private final val longStringBitVector = BitVector.view(longStringBytes) @Benchmark def decode_ok_baseline_charset: String = UTF_8.decode(ByteBuffer.wrap(okBytes)).toString @Benchmark def decode_ok_baseline_string: String = new String(okBytes, UTF_8) @Benchmark def decode_ok_default_utf8: Attempt[String] = defaultUtf8.decodeValue(okBitVector) @Benchmark def decode_ok_lenient_utf8: Attempt[String] = lenientUtf8.decodeValue(okBitVector) @Benchmark def decode_long_string_baseline_charset: String = UTF_8.decode(ByteBuffer.wrap(longStringBytes)).toString @Benchmark def decode_long_string_baseline_string: String = new String(longStringBytes, UTF_8) @Benchmark def decode_long_string_default_utf8: Attempt[String] = defaultUtf8.decodeValue(longStringBitVector) @Benchmark def decode_long_string_lenient_utf8: Attempt[String] = lenientUtf8.decodeValue(longStringBitVector) @Benchmark def encode_ok_baseline_charset: ByteBuffer = UTF_8.encode(ok) @Benchmark def encode_ok_baseline_string: scala.Array[Byte] = ok.getBytes(UTF_8) @Benchmark def encode_ok_default_utf8: Attempt[BitVector] = defaultUtf8.encode(ok) @Benchmark def encode_ok_lenient_utf8: Attempt[BitVector] = lenientUtf8.encode(ok) @Benchmark def encode_long_string_baseline_charset: ByteBuffer = UTF_8.encode(longString) @Benchmark def encode_long_string_baseline_string: scala.Array[Byte] = longString.getBytes(UTF_8) @Benchmark def encode_long_string_default_utf8: Attempt[BitVector] = defaultUtf8.encode(longString) @Benchmark def encode_long_string_lenient_utf8: Attempt[BitVector] = lenientUtf8.encode(longString) }
Example 25
Source File: RESPBench.scala From laserdisc with MIT License | 5 votes |
package laserdisc package protocol import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Benchmark, Scope, State} import scodec.bits.BitVector import scodec.codecs.utf8 import scodec.{Attempt, Codec} @State(Scope.Benchmark) class RESPBench { private final val codec = Codec[RESP] private final val chars = 2000 private final val ok = "OK" private final val okRedis = s"+$ok$CRLF" private final val rtProblem = "runtime problem" private final val rtProblemRedis = s"-$rtProblem$CRLF" private final val fortyTwo = 42L private final val fortyTwoRedis = s":$fortyTwo$CRLF" private final val longString = new String(Array.fill(chars)('a')) private final val longStringRedis = s"$$$chars$CRLF$longString$CRLF" private final val longStringI = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" private final val str = Str(ok) private final val strBits = BitVector(okRedis.getBytes(UTF_8)) private final val err = Err(rtProblem) private final val errBits = BitVector(rtProblemRedis.getBytes(UTF_8)) private final val num = Num(fortyTwo) private final val numBits = BitVector(fortyTwoRedis.getBytes(UTF_8)) private final val bulk = Bulk(longString) private final val bulkBits = BitVector(longStringRedis.getBytes(UTF_8)) private final val longStringBits = BitVector(longString.getBytes(UTF_8)) private final val longStringIBits = BitVector(longStringI.getBytes(UTF_8)) @Benchmark def baseline_utf8_encode: Attempt[BitVector] = utf8.encode(longString) @Benchmark def baseline_utf8_decode: Attempt[String] = utf8.decodeValue(longStringBits) @Benchmark def baseline_utf8_encodeI: Attempt[BitVector] = utf8.encode(longStringI) @Benchmark def baseline_utf8_decodeI: Attempt[String] = utf8.decodeValue(longStringIBits) @Benchmark def str_encode: Attempt[BitVector] = codec.encode(str) @Benchmark def str_decode: Attempt[RESP] = codec.decodeValue(strBits) @Benchmark def err_encode: Attempt[BitVector] = codec.encode(err) @Benchmark def err_decode: Attempt[RESP] = codec.decodeValue(errBits) @Benchmark def num_encode: Attempt[BitVector] = codec.encode(num) @Benchmark def num_decode: Attempt[RESP] = codec.decodeValue(numBits) @Benchmark def bulk_encode: Attempt[BitVector] = codec.encode(bulk) @Benchmark def bulk_decode: Attempt[RESP] = codec.decodeValue(bulkBits) }
Example 26
Source File: CharsetMap.scala From asyncdb with Apache License 2.0 | 5 votes |
package io.asyncdb package netty package mysql import java.nio.charset.{Charset => JCharset} import java.nio.charset.StandardCharsets.{UTF_8, ISO_8859_1, US_ASCII} object CharsetMap { def of(charset: Short): JCharset = if (isUtf8(charset)) UTF_8 else if (isLatin1(charset)) ISO_8859_1 else if (isBinary(charset)) US_ASCII else throw new IllegalArgumentException( "Charset %d is not supported.".format(charset) ) val Utf8_bin = 83.toShort val Utf8_general_ci = 33.toShort val Utf8mb4_general_ci = 45.toShort val Binary = 63.toShort private[this] val CompatibleSet = Latin1Set ++ Utf8Set + Binary def isCompatible(code: Short): Boolean = CompatibleSet(code) def isUtf8(code: Short): Boolean = Utf8Set(code) def isLatin1(code: Short): Boolean = Latin1Set(code) def isBinary(code: Short): Boolean = code == Binary }
Example 27
Source File: FunctionInputStream.scala From almond with BSD 3-Clause "New" or "Revised" License | 5 votes |
package almond.internals import java.io.InputStream import java.nio.ByteBuffer import java.nio.charset.Charset import java.nio.charset.StandardCharsets.UTF_8 import scala.annotation.tailrec class FunctionInputStream(internalCharset: Charset, f: => Option[String]) extends InputStream { // not thread-safe private var bufferOpt = Option.empty[ByteBuffer] private var done = false @tailrec private def maybeFetchNewBuffer(): Option[ByteBuffer] = if (done) None else { if (bufferOpt.forall(!_.hasRemaining)) { val s = f s match { case Some(value) => val b0 = ByteBuffer.wrap(value.getBytes(UTF_8)).asReadOnlyBuffer() bufferOpt = Some(b0) case None => done = true bufferOpt = None } maybeFetchNewBuffer() // maybe we were given an empty string, and need to call f again } else bufferOpt } def read(): Int = maybeFetchNewBuffer() .fold(-1)(_.get()) override def read(b: Array[Byte], off: Int, len: Int): Int = // InputStream.read does these 3 checks upfront too if (b == null) throw new NullPointerException else if (off < 0 || len < 0 || len > b.length - off) throw new IndexOutOfBoundsException else if (len == 0) 0 else maybeFetchNewBuffer().fold(-1) { b0 => val toRead = math.min(b0.remaining(), len) b0.get(b, off, toRead) toRead } def clear(): Unit = { done = false bufferOpt = None } }
Example 28
Source File: InputManager.scala From almond with BSD 3-Clause "New" or "Revised" License | 5 votes |
package almond.interpreter.input import java.io.InputStream import java.nio.charset.StandardCharsets.UTF_8 import java.nio.ByteBuffer import scala.concurrent.duration.Duration import scala.concurrent.{Await, ExecutionContext, Future} import scala.util.{Failure, Success} trait InputManager { def done(): Unit def readInput(prompt: String = "", password: Boolean = false): Future[String] final def password(prompt: String = ""): Future[String] = readInput(prompt, password = true) final def inputStream(ec: ExecutionContext): InputStream = new InputManager.InputManagerInputStream(this, ec) } object InputManager { class NoMoreInputException extends Exception class InputManagerInputStream( manager: InputManager, ec: ExecutionContext ) extends InputStream { private var bufferOpt = Option.empty[ByteBuffer] private var done = false private def maybeFetchNewBuffer(): Option[ByteBuffer] = if (done) None else { if (bufferOpt.forall(!_.hasRemaining)) { val res = { implicit val ec0 = ec Await.result( manager.readInput() .map(Success(_)) .recover { case t => Failure(t) }, Duration.Inf ) } res match { case Success(value) => val b0 = ByteBuffer.wrap((value + "\n").getBytes(UTF_8)).asReadOnlyBuffer() bufferOpt = Some(b0) case Failure(_: NoMoreInputException) => done = true bufferOpt = None case Failure(ex) => throw new Exception("Error getting more input", ex) } } bufferOpt } def read(): Int = maybeFetchNewBuffer() .fold(-1)(_.get()) override def read(b: Array[Byte], off: Int, len: Int): Int = // InputStream.read does these 3 checks upfront too if (b == null) throw new NullPointerException else if (off < 0 || len < 0 || len > b.length - off) throw new IndexOutOfBoundsException else if (len == 0) 0 else maybeFetchNewBuffer().fold(-1) { b0 => val toRead = math.min(b0.remaining(), len) b0.get(b, off, toRead) toRead } } }
Example 29
Source File: DataTxSerializer.scala From Waves with MIT License | 5 votes |
package com.wavesplatform.transaction.serialization.impl import java.nio.ByteBuffer import java.nio.charset.StandardCharsets.UTF_8 import com.google.common.primitives.{Bytes, Longs, Shorts} import com.wavesplatform.common.state.ByteStr import com.wavesplatform.account.AddressScheme import com.wavesplatform.serialization._ import com.wavesplatform.state.DataEntry.Type import com.wavesplatform.state.{BinaryDataEntry, BooleanDataEntry, DataEntry, IntegerDataEntry, StringDataEntry} import com.wavesplatform.transaction.{DataTransaction, TxVersion} import com.wavesplatform.utils.StringBytes import play.api.libs.json.{JsObject, Json} import scala.util.Try object DataTxSerializer { def toJson(tx: DataTransaction): JsObject = { import tx._ BaseTxJson.toJson(tx) ++ Json.obj("data" -> Json.toJson(data) ) } def bodyBytes(tx: DataTransaction): Array[Byte] = { import tx._ version match { case TxVersion.V1 => Bytes.concat( Array(builder.typeId, version), sender.arr, Shorts.toByteArray(data.size.toShort), Bytes.concat(data.map(serializeEntry): _*), Longs.toByteArray(timestamp), Longs.toByteArray(fee) ) case _ => PBTransactionSerializer.bodyBytes(tx) } } private def serializeEntry(e: DataEntry[_]): Array[Byte] = { val keyBytes = e.key.utf8Bytes val valueBytes = e match { case IntegerDataEntry(_, value) => Bytes.concat(Array(Type.Integer.id.toByte), Longs.toByteArray(value)) case BooleanDataEntry(_, value) => Array(Type.Boolean.id, if (value) 1 else 0).map(_.toByte) case BinaryDataEntry(_, value) => Bytes.concat(Array(Type.Binary.id.toByte), Deser.serializeArrayWithLength(value.arr)) case StringDataEntry(_, value) => Bytes.concat(Array(Type.String.id.toByte), Deser.serializeArrayWithLength(value.utf8Bytes)) case other => throw new IllegalArgumentException(s"Unsupported data entry: $other") } Bytes.concat(Shorts.toByteArray(keyBytes.length.toShort), keyBytes, valueBytes) } def toBytes(tx: DataTransaction): Array[Byte] = if (tx.isProtobufVersion) PBTransactionSerializer.bytes(tx) else Bytes.concat(Array(0: Byte), this.bodyBytes(tx), tx.proofs.bytes()) def parseBytes(bytes: Array[Byte]): Try[DataTransaction] = Try { def parseDataEntries(buf: ByteBuffer): Seq[DataEntry[_]] = { val entryCount = buf.getShort require(entryCount >= 0 && buf.remaining() > entryCount, s"Broken array size ($entryCount entries while ${buf.remaining()} bytes available)") Vector.fill(entryCount)(parseEntry(buf)) } val buf = ByteBuffer.wrap(bytes) require(buf.getByte == 0 && buf.getByte == DataTransaction.typeId && buf.getByte == 1, "transaction type mismatch") val sender = buf.getPublicKey val data = parseDataEntries(buf) val timestamp = buf.getLong // Timestamp before fee val fee = buf.getLong DataTransaction(TxVersion.V1, sender, data, fee, timestamp, buf.getProofs, AddressScheme.current.chainId) } private def parseEntry(buf: ByteBuffer): DataEntry[_] = { val key = new String(Deser.parseArrayWithLength(buf), UTF_8) buf.get match { case t if t == Type.Integer.id => IntegerDataEntry(key, buf.getLong) case t if t == Type.Boolean.id => BooleanDataEntry(key, buf.get != 0) case t if t == Type.Binary.id => BinaryDataEntry(key, ByteStr(Deser.parseArrayWithLength(buf))) case t if t == Type.String.id => StringDataEntry(key, new String(Deser.parseArrayWithLength(buf), UTF_8)) case other => throw new IllegalArgumentException(s"Unknown type $other") } } }
Example 30
Source File: PlayJsonSupport.scala From kafka-serde-scala with Apache License 2.0 | 5 votes |
package io.github.azhur.kafkaserdeplayjson import java.nio.charset.StandardCharsets.UTF_8 import java.util import io.github.azhur.kafkaserdeplayjson.PlayJsonSupport.PlayJsonError import org.apache.kafka.common.errors.SerializationException import org.apache.kafka.common.serialization.{ Deserializer, Serde, Serializer } import play.api.libs.json.{ JsError, JsValue, Json, Reads, Writes } import scala.language.implicitConversions import scala.util.control.NonFatal trait PlayJsonSupport { implicit def toSerializer[T <: AnyRef]( implicit writes: Writes[T], printer: JsValue => String = Json.stringify ): Serializer[T] = new Serializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serialize(topic: String, data: T): Array[Byte] = if (data == null) null else try printer(writes.writes(data)).getBytes(UTF_8) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toDeserializer[T >: Null <: AnyRef: Manifest]( implicit reads: Reads[T] ): Deserializer[T] = new Deserializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def deserialize(topic: String, data: Array[Byte]): T = if (data == null) null else reads .reads(Json.parse(new String(data, UTF_8))) .recoverTotal { e => throw new SerializationException(PlayJsonError(e)) } } implicit def toSerde[T >: Null <: AnyRef: Manifest]( implicit writes: Writes[T], reads: Reads[T], printer: JsValue => String = Json.stringify ): Serde[T] = new Serde[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serializer(): Serializer[T] = toSerializer[T] override def deserializer(): Deserializer[T] = toDeserializer[T] } } object PlayJsonSupport extends PlayJsonSupport { final case class PlayJsonError(error: JsError) extends RuntimeException { override def getMessage: String = JsError.toJson(error).toString() } }
Example 31
Source File: ArrayOfLongsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfLongsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Long] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => (i * 6971258582664805397L) / Math.pow(10, i % 19).toLong).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 32
Source File: Json4sSupport.scala From kafka-serde-scala with Apache License 2.0 | 5 votes |
package io.github.azhur.kafkaserdejson4s import java.nio.charset.StandardCharsets.UTF_8 import java.util import org.apache.kafka.common.errors.SerializationException import org.apache.kafka.common.serialization.{ Deserializer, Serde, Serializer } import org.json4s.{ Formats, Serialization } import scala.language.implicitConversions import scala.util.control.NonFatal trait Json4sSupport { implicit def toSerializer[T <: AnyRef](implicit serialization: Serialization, formats: Formats): Serializer[T] = new Serializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serialize(topic: String, data: T): Array[Byte] = if (data == null) null else try serialization.write[T](data).getBytes(UTF_8) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toDeserializer[T >: Null <: AnyRef: Manifest]( implicit serialization: Serialization, formats: Formats ): Deserializer[T] = new Deserializer[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def deserialize(topic: String, data: Array[Byte]): T = if (data == null) null else try serialization.read[T](new String(data, UTF_8)) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toSerde[T >: Null <: AnyRef: Manifest](implicit serialization: Serialization, formats: Formats): Serde[T] = new Serde[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serializer(): Serializer[T] = toSerializer[T] override def deserializer(): Deserializer[T] = toDeserializer[T] } } object Json4sSupport extends Json4sSupport
Example 33
Source File: CirceSupport.scala From kafka-serde-scala with Apache License 2.0 | 5 votes |
package io.github.azhur.kafkaserdecirce import java.nio.charset.StandardCharsets.UTF_8 import java.util import io.circe.{ Decoder, Encoder, Printer } import org.apache.kafka.common.errors.SerializationException import org.apache.kafka.common.serialization.{ Deserializer, Serde, Serializer } import scala.language.implicitConversions import scala.util.control.NonFatal trait CirceSupport { implicit def toSerializer[T >: Null](implicit encoder: Encoder[T], printer: Printer = Printer.noSpaces): Serializer[T] = new Serializer[T] { import io.circe.syntax._ override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serialize(topic: String, data: T): Array[Byte] = if (data == null) null else try printer.pretty(data.asJson).getBytes(UTF_8) catch { case NonFatal(e) => throw new SerializationException(e) } } implicit def toDeserializer[T >: Null](implicit decoder: Decoder[T]): Deserializer[T] = new Deserializer[T] { import io.circe._ import cats.syntax.either._ override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def deserialize(topic: String, data: Array[Byte]): T = if (data == null) null else parser .parse(new String(data, UTF_8)) .valueOr(e => throw new SerializationException(e)) .as[T] .valueOr(e => throw new SerializationException(e)) } implicit def toSerde[T >: Null](implicit encoder: Encoder[T], printer: Printer = Printer.noSpaces, decoder: Decoder[T]): Serde[T] = new Serde[T] { override def configure(configs: util.Map[String, _], isKey: Boolean): Unit = {} override def close(): Unit = {} override def serializer(): Serializer[T] = toSerializer[T] override def deserializer(): Deserializer[T] = toDeserializer[T] } } object CirceSupport extends CirceSupport
Example 34
Source File: RowData.scala From skunk with MIT License | 5 votes |
// Copyright (c) 2018-2020 by Rob Norris // This software is licensed under the MIT License (MIT). // For more information see LICENSE or https://opensource.org/licenses/MIT package skunk.net.message import java.nio.charset.StandardCharsets.UTF_8 import scodec._ import scodec.codecs._ case class RowData(fields: List[Option[String]]) extends BackendMessage object RowData { private val field: Codec[Option[String]] = int32.flatMap { case -1 => Decoder.point(None) case n => bytes(n).map(bv => Some(new String(bv.toArray, UTF_8))) }.decodeOnly final val Tag = 'D' final val decoder: Decoder[RowData] = codecs.listOfN(int16, field).map(apply) }
Example 35
Source File: ConfigValues.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4actor import java.lang.Math.toIntExact import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{Files, Path, Paths} import ee.cone.c4actor.Types.SrcId import ee.cone.c4assemble.Single trait SrcIdValue {def srcId: SrcId} trait StringValue {def value: String} case class StringConstant(value: String) extends StringValue trait ControversialBooleanConversion { def convert: String => Boolean = v => v.trim.toLowerCase match { case "" | "0" | "false" => false case _ => true } } trait BooleanValue { def value: Boolean } class BooleanTrue extends BooleanValue{def value = true} class BooleanFalse extends BooleanValue{def value = false} trait IntValue {def value: Int} case class IntConstant(value: Int) extends IntValue abstract class ConfigStringOptValue(envName: String, default: () => String = () => "") extends StringValue { def config: ListConfig def value: String = Single.option(config.get(envName)).getOrElse(default()) } abstract class ConfigIntOptValue(envName: String, default: () => Int = () => 0) extends IntValue { def config: ListConfig def value: Int = Single.option(config.get(envName)).fold(default())(s=>toIntExact(s.toLong)) } abstract class ConfigBooleanOptValue(envName: String, default: () => Boolean = () => false) extends BooleanValue with ControversialBooleanConversion { def config: ListConfig def value: Boolean = Single.option(config.get(envName)).fold(default())(convert) } abstract class ConfigStringValue(envName: String) extends StringValue{ def config: Config def value: String = config.get(envName) } abstract class ConfigFileConfig(envName: String) extends StringValue{ def config: Config def value: String = read(Paths.get(config.get(envName))).trim private def read(path: Path) = new String(Files.readAllBytes(path),UTF_8) } abstract class ConfigIntValue(envName: String) extends IntValue{ def config: Config def value: Int = toIntExact(config.get(envName).toLong) } abstract class ConfigBooleanValue(envName: String) extends BooleanValue with ControversialBooleanConversion { def config: Config def value: Boolean = convert(config.get(envName)) }
Example 36
Source File: Logger.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4actor_logback_impl import java.io.ByteArrayInputStream import java.nio.file.{Files, Path, Paths} import java.nio.charset.StandardCharsets.UTF_8 import ch.qos.logback.classic.LoggerContext import ch.qos.logback.classic.joran.JoranConfigurator import com.typesafe.scalalogging.LazyLogging import ee.cone.c4actor._ import ee.cone.c4di.c4 import org.slf4j.LoggerFactory import scala.annotation.tailrec @c4("BasicLoggingApp") final class LoggerTest extends Executable with Early with LazyLogging { def run(): Unit = if(Option(System.getenv("C4LOGBACK_TEST")).nonEmpty) iteration(0L) @tailrec private def iteration(v: Long): Unit = { Thread.sleep(1000) logger.warn(s"logger test $v") logger.debug(s"logger test $v") iteration(v+1L) } } @c4("BasicLoggingApp") final class DefLoggerConfigurator( config: ListConfig, catchNonFatal: CatchNonFatal ) extends LoggerConfigurator( config.get("C4LOGBACK_XML").map(Paths.get(_)) ::: Paths.get("/tmp/logback.xml") :: Nil, catchNonFatal, 5000 ) with Executable with Early class LoggerConfigurator(paths: List[Path], catchNonFatal: CatchNonFatal, scanPeriod: Long) extends Executable { def run(): Unit = iteration("") @tailrec private def iteration(wasContent: String): Unit = { val content = s""" <configuration> <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> ${paths.map(path=>if(Files.exists (path)) new String(Files.readAllBytes(path), UTF_8) else "").mkString} <appender name="CON" class="ch.qos.logback.core.ConsoleAppender"> <encoder><pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern></encoder> </appender> <appender name="ASYNСCON" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>1000000</queueSize> <appender-ref ref="CON" /> </appender> <root level="INFO"> <appender-ref ref="ASYNСCON" /> </root> <shutdownHook/> </configuration> """ if(wasContent != content) reconfigure(content) Thread.sleep(scanPeriod) iteration(content) } def reconfigure(content: String): Unit = catchNonFatal{ println("logback reconfigure 2 started") val context = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] val configurator = new JoranConfigurator() configurator.setContext(context) context.reset() configurator.doConfigure(new ByteArrayInputStream(content.getBytes(UTF_8))) println("logback reconfigure 2 ok") }("reconfigure"){ e => () } }
Example 37
Source File: Protocol.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4proto import java.nio.charset.StandardCharsets.UTF_8 import ee.cone.c4di.TypeKey import okio.ByteString import collection.immutable.Seq import scala.annotation.StaticAnnotation case class Id(id: Long) extends StaticAnnotation case class ShortName(name: String) extends StaticAnnotation class GenLens extends StaticAnnotation // override def toString: String = // s"TypeKey(${if (clName.endsWith(alias)) clName else s"$clName/$alias"}${if (args.isEmpty) "" else args.map(_.toString).mkString("[",", ", "]")})" case class MetaProp(id: Int, propName: String, propShortName: Option[String], resultType: String, typeProp: TypeKey) trait ProtoOrigMeta { def id: Option[Long] def categories: List[DataCategory] def cl: Class[_] def shortName: Option[String] def metaProps: List[MetaProp] } trait HasId { def protoOrigMeta: ProtoOrigMeta def id: Long = protoOrigMeta.id.getOrElse(throw new Exception("This orig has no Id")) def hasId: Boolean = protoOrigMeta.id.nonEmpty lazy val className: String = protoOrigMeta.cl.getName @deprecated("Deprecated, use OrigMeta[Orig].categories", "07/04/20") def categories: List[DataCategory] = protoOrigMeta.categories @deprecated("Deprecated, use OrigMeta[Orig].cl", "07/04/20") def cl: Class[_] = protoOrigMeta.cl @deprecated("Deprecated, use OrigMeta[Orig].shortName", "07/04/20") def shortName: Option[String] = protoOrigMeta.shortName @deprecated("Deprecated, use OrigMeta[Orig].fieldsMeta", "07/04/20") def props: List[MetaProp] = protoOrigMeta.metaProps } object ToByteString { def apply(data: Array[Byte]): ByteString = ByteString.of(data,0,data.length) def apply(v: String): ByteString = apply(v.getBytes(UTF_8)) } class replaceBy[T](factory: Object) extends StaticAnnotation abstract class ArgAdapter[Value] { def encodedSizeWithTag (tag: Int, value: Value): Int def encodeWithTag(writer: ProtoWriter, tag: Int, value: Value): Unit def defaultValue: Value def decodeReduce(reader: ProtoReader, prev: Value): Value def decodeFix(prev: Value): Value } object FieldEncoding { val LENGTH_DELIMITED = com.squareup.wire.FieldEncoding.LENGTH_DELIMITED }
Example 38
Source File: IdGenUtilImpl.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4actor import java.nio.ByteBuffer import java.nio.charset.StandardCharsets.UTF_8 import java.security.MessageDigest import java.util.Base64 import ee.cone.c4actor.Types.SrcId import ee.cone.c4di.c4 import okio.ByteString import scala.collection.immutable.TreeMap @c4("RichDataCompApp") final case class IdGenUtilImpl()( proto: MessageDigest = MessageDigest.getInstance("MD5") ) extends IdGenUtil { private def md5(data: Array[Byte]*): String = { val d = proto.clone().asInstanceOf[MessageDigest] // much faster than getInstance("MD5") data.foreach{ bytes => val l = bytes.length d.update((l>>24).toByte) d.update((l>>16).toByte) d.update((l>> 8).toByte) d.update((l>> 0).toByte) d.update(bytes) } Base64.getUrlEncoder.encodeToString(d.digest) } private def toBytes(value: String): Array[Byte] = value.getBytes(UTF_8) private def toBytes(value: Long): Array[Byte] = ByteBuffer.allocate(java.lang.Long.BYTES).putLong(value).array() def srcIdFromSrcIds(srcIdList: SrcId*): SrcId = md5(srcIdList.map(toBytes):_*) def srcIdFromStrings(stringList: String*): SrcId = md5(stringList.map(toBytes):_*) def srcIdFromSerialized(adapterId: Long, bytes: ByteString): SrcId = md5(toBytes(adapterId),bytes.toByteArray) }
Example 39
Source File: SnapshotRemoteImpl.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4actor import java.net.{URLDecoder, URLEncoder} import java.nio.file.{Files, Paths} import java.nio.charset.StandardCharsets.UTF_8 import ee.cone.c4di.c4 @c4("ConfigSimpleSignerApp") final class SimpleSignerImpl( config: Config, idGenUtil : IdGenUtil )( fileName: String = config.get("C4AUTH_KEY_FILE") )( val salt: String = new String(Files.readAllBytes(Paths.get(fileName)),UTF_8) ) extends SimpleSigner { def sign(data: List[String], until: Long): String = { val uData = until.toString :: data val hash = idGenUtil.srcIdFromStrings(salt :: uData:_*) (hash :: uData).map(URLEncoder.encode(_,"UTF-8")).mkString("=") } def retrieve(check: Boolean): Option[String]=>Option[List[String]] = _.flatMap{ signed => val hash :: untilStr :: data = signed.split("=").map(URLDecoder.decode(_,"UTF-8")).toList val until = untilStr.toLong if(!check) Option(data) else if(until < System.currentTimeMillis) None else if(sign(data,until) == signed) Option(data) else None } } @c4("TaskSignerApp") final class SnapshotTaskSignerImpl(inner: SimpleSigner)( val url: String = "/need-snapshot" ) extends SnapshotTaskSigner { def sign(task: SnapshotTask, until: Long): String = inner.sign(List(url,task.name) ++ task.offsetOpt, until) def retrieve(check: Boolean): Option[String]=>Option[SnapshotTask] = signed => inner.retrieve(check)(signed) match { case Some(Seq(`url`,"next")) => Option(NextSnapshotTask(None)) case Some(Seq(`url`,"next", offset)) => Option(NextSnapshotTask(Option(offset))) case Some(Seq(`url`,"debug", offset)) => Option(DebugSnapshotTask(offset)) case _ => None } }
Example 40
Source File: ProgressObserverImpl.scala From c4proto with Apache License 2.0 | 5 votes |
package ee.cone.c4actor import java.lang.management.ManagementFactory import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{Files, Path, Paths} import java.time.Instant import java.util.UUID import com.typesafe.scalalogging.LazyLogging import ee.cone.c4actor.QProtocol.S_Firstborn import ee.cone.c4actor.Types.{NextOffset, SrcId} import ee.cone.c4assemble.Types.{Each, Values} import ee.cone.c4assemble.{Single, c4assemble} import ee.cone.c4di.c4 import scala.annotation.tailrec import scala.concurrent.Future @c4("ServerCompApp") final class ProgressObserverFactoryImpl( inner: TxObserver, config: ListConfig, execution: Execution, getToStart: DeferredSeq[Executable] ) extends ProgressObserverFactory { def create(endOffset: NextOffset): Observer[RichContext] = { val lateExObserver: Observer[RichContext] = new LateExecutionObserver(execution,getToStart.value,inner.value) val readyObserver = Single.option(config.get("C4ROLLING")).fold(lateExObserver)(path=> new ReadyObserverImpl(lateExObserver, Paths.get(path), 0L) ) new ProgressObserverImpl(readyObserver,endOffset) } } // states: // loading // loading ready // master // trans: // loading -> loading // loading -> loading ready // loading ready -> loading ready // loading ready -> master class ProgressObserverImpl(inner: Observer[RichContext], endOffset: NextOffset, until: Long=0) extends Observer[RichContext] with LazyLogging { def activate(rawWorld: RichContext): Observer[RichContext] = if (rawWorld.offset < endOffset) { val now = System.currentTimeMillis if(now < until) this else { logger.debug(s"loaded ${rawWorld.offset}/$endOffset") new ProgressObserverImpl(inner, endOffset, now+1000) } } else { logger.info(s"Stats OK -- loaded ALL/$endOffset -- uptime ${ManagementFactory.getRuntimeMXBean.getUptime}ms") inner.activate(rawWorld) } } class ReadyObserverImpl(inner: Observer[RichContext], path: Path, until: Long=0) extends Observer[RichContext] with LazyLogging { private def ignoreTheSamePath(path: Path): Unit = () def activate(rawWorld: RichContext): Observer[RichContext] = { if(until == 0) ignoreTheSamePath(Files.write(path.resolve("c4is-ready"),Array.empty[Byte])) val now = System.currentTimeMillis if(now < until) this else if(Files.exists(path.resolve("c4is-master"))) { logger.info(s"becoming master") inner.activate(rawWorld) } else { logger.debug(s"ready/waiting") new ReadyObserverImpl(inner, path, now+1000) } } } @c4("ServerCompApp") final class LocalElectorDeath(config: ListConfig, execution: Execution) extends Executable with Early { def run(): Unit = for(path <- config.get("C4ELECTOR_PROC_PATH")) iteration(Paths.get(path)) @tailrec private def iteration(path: Path): Unit = { if(Files.notExists(path)) execution.complete() Thread.sleep(1000) iteration(path) } } //// @c4("ServerCompApp") final class ServerExecutionFilter(inner: ExecutionFilter) extends ExecutionFilter(e=>inner.check(e) && e.isInstanceOf[Early]) class LateExecutionObserver( execution: Execution, toStart: Seq[Executable], inner: Observer[RichContext] ) extends Observer[RichContext] with LazyLogging { def activate(world: RichContext): Observer[RichContext] = { logger.info(s"tracking ${toStart.size} late services") toStart.filterNot(_.isInstanceOf[Early]).foreach(f => execution.fatal(Future(f.run())(_))) inner.activate(world) } }
Example 41
Source File: ArrayOfYearsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfYearsWriting extends ArrayOfYearsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 42
Source File: ArrayOfZoneIdsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZoneIdsWriting extends ArrayOfZoneIdsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 43
Source File: MapOfIntsToBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.immutable.Map abstract class MapOfIntsToBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Map[Int, Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = Map((1 to size).map { i => (((i * 1498724053) / Math.pow(10, i % 10)).toInt, ((i * 1498724053) & 0x1) == 0) }:_*) jsonString = obj.map(e => "\"" + e._1 + "\":" + e._2).mkString("{", ",", "}") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 44
Source File: StringOfAsciiCharsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfAsciiCharsReading extends StringOfAsciiCharsBenchmark { @Benchmark def avSystemGenCodec(): String = JsonStringInput.read[String](new String(jsonBytes, UTF_8)) @Benchmark def borer(): String = io.bullet.borer.Json.decode(jsonBytes).to[String].value @Benchmark def circe(): String = decode[String](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): String = dslJsonDecode[String](jsonBytes)(stringDecoder) @Benchmark def jacksonScala(): String = jacksonMapper.readValue[String](jsonBytes) @Benchmark def jsoniterScala(): String = readFromArray[String](jsonBytes, tooLongStringConfig)(stringCodec) @Benchmark def playJson(): String = Json.parse(jsonBytes).as[String] @Benchmark def sprayJson(): String = spray.json.JsonParser(jsonBytes).convertTo[String] @Benchmark def uPickle(): String = read[String](jsonBytes) @Benchmark def weePickle(): String = FromJson(jsonBytes).transform(ToScala[String]) }
Example 45
Source File: ArrayOfBigIntsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala //import play.api.libs.json.Json import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import spray.json._ class ArrayOfBigIntsReading extends ArrayOfBigIntsBenchmark { @Benchmark def avSystemGenCodec(): Array[BigInt] = JsonStringInput.read[Array[BigInt]](new String(jsonBytes, UTF_8)) @Benchmark def circe(): Array[BigInt] = decode[Array[BigInt]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def borer(): Array[BigInt] = io.bullet.borer.Json.decode(jsonBytes).withConfig(decodingConfig).to[Array[BigInt]].value @Benchmark def dslJsonScala(): Array[BigInt] = dslJsonDecode[Array[BigInt]](jsonBytes) @Benchmark def jacksonScala(): Array[BigInt] = jacksonMapper.readValue[Array[BigInt]](jsonBytes) @Benchmark def jsoniterScala(): Array[BigInt] = readFromArray[Array[BigInt]](jsonBytes) @Benchmark def sprayJson(): Array[BigInt] = JsonParser(jsonBytes).convertTo[Array[BigInt]] @Benchmark def uPickle(): Array[BigInt] = read[Array[BigInt]](jsonBytes) @Benchmark def weePickle(): Array[BigInt] = FromJson(jsonBytes).transform(ToScala[Array[BigInt]]) }
Example 46
Source File: ArrayOfDoublesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfDoublesReading extends ArrayOfDoublesBenchmark { @Benchmark def avSystemGenCodec(): Array[Double] = JsonStringInput.read[Array[Double]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Double] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Double]].value @Benchmark def circe(): Array[Double] = decode[Array[Double]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Double] = dslJsonDecode[Array[Double]](jsonBytes) @Benchmark def jacksonScala(): Array[Double] = jacksonMapper.readValue[Array[Double]](jsonBytes) @Benchmark def jsoniterScala(): Array[Double] = readFromArray[Array[Double]](jsonBytes) @Benchmark def playJson(): Array[Double] = Json.parse(jsonBytes).as[Array[Double]] @Benchmark def sprayJson(): Array[Double] = JsonParser(jsonBytes).convertTo[Array[Double]] @Benchmark def uPickle(): Array[Double] = read[Array[Double]](jsonBytes) @Benchmark def weePickle(): Array[Double] = FromJson(jsonBytes).transform(ToScala[Array[Double]]) }
Example 47
Source File: ADTReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ADTReading extends ADTBenchmark { @Benchmark def avSystemGenCodec(): ADTBase = JsonStringInput.read[ADTBase](new String(jsonBytes, UTF_8)) @Benchmark def borer(): ADTBase = io.bullet.borer.Json.decode(jsonBytes).to[ADTBase].value @Benchmark def circe(): ADTBase = decode[ADTBase](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): ADTBase = jacksonMapper.readValue[ADTBase](jsonBytes) @Benchmark def jsoniterScala(): ADTBase = readFromArray[ADTBase](jsonBytes) @Benchmark def playJson(): ADTBase = Json.parse(jsonBytes).as[ADTBase](adtFormat) @Benchmark def sprayJson(): ADTBase = JsonParser(jsonBytes).convertTo[ADTBase](adtBaseJsonFormat) @Benchmark def uPickle(): ADTBase = read[ADTBase](jsonBytes) @Benchmark def weePickle(): ADTBase = FromJson(jsonBytes).transform(ToScala[ADTBase]) }
Example 48
Source File: BitSetWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json class BitSetWriting extends BitSetBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) }
Example 49
Source File: ArrayOfBytesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.module.scala.ScalaObjectMapper import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers.createJacksonMapper import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfBytesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Byte] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(_.toByte).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 50
Source File: ArrayOfYearMonthsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.YearMonth import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfYearMonthsReading extends ArrayOfYearMonthsBenchmark { @Benchmark def avSystemGenCodec(): Array[YearMonth] = JsonStringInput.read[Array[YearMonth]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[YearMonth] = io.bullet.borer.Json.decode(jsonBytes).to[Array[YearMonth]].value @Benchmark def circe(): Array[YearMonth] = decode[Array[YearMonth]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[YearMonth] = jacksonMapper.readValue[Array[YearMonth]](jsonBytes) @Benchmark def jsoniterScala(): Array[YearMonth] = readFromArray[Array[YearMonth]](jsonBytes) @Benchmark def playJson(): Array[YearMonth] = Json.parse(jsonBytes).as[Array[YearMonth]] @Benchmark def sprayJson(): Array[YearMonth] = JsonParser(jsonBytes).convertTo[Array[YearMonth]] @Benchmark def uPickle(): Array[YearMonth] = read[Array[YearMonth]](jsonBytes) }
Example 51
Source File: ArrayOfYearsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Year import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfYearsReading extends ArrayOfYearsBenchmark { @Benchmark def avSystemGenCodec(): Array[Year] = JsonStringInput.read[Array[Year]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Year] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Year]].value @Benchmark def circe(): Array[Year] = decode[Array[Year]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Year] = jacksonMapper.readValue[Array[Year]](jsonBytes) @Benchmark def jsoniterScala(): Array[Year] = readFromArray[Array[Year]](jsonBytes) @Benchmark def playJson(): Array[Year] = Json.parse(jsonBytes).as[Array[Year]] @Benchmark def sprayJson(): Array[Year] = JsonParser(jsonBytes).convertTo[Array[Year]] @Benchmark def uPickle(): Array[Year] = read[Array[Year]](jsonBytes) }
Example 52
Source File: PrimitivesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class PrimitivesReading extends PrimitivesBenchmark { @Benchmark def avSystemGenCodec(): Primitives = JsonStringInput.read[Primitives](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Primitives = io.bullet.borer.Json.decode(jsonBytes).to[Primitives].value @Benchmark def circe(): Primitives = decode[Primitives](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Primitives = jacksonMapper.readValue[Primitives](jsonBytes) @Benchmark def jsoniterScala(): Primitives = readFromArray[Primitives](jsonBytes) @Benchmark def playJson(): Primitives = Json.parse(jsonBytes).as[Primitives] @Benchmark def sprayJson(): Primitives = JsonParser(jsonBytes).convertTo[Primitives] @Benchmark def uPickle(): Primitives = read[Primitives](jsonBytes) @Benchmark def weePickle(): Primitives = FromJson(jsonBytes).transform(ToScala[Primitives]) }
Example 53
Source File: ArrayOfCharsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfCharsWriting extends ArrayOfCharsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 54
Source File: VectorOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class VectorOfBooleansReading extends VectorOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Vector[Boolean] = JsonStringInput.read[Vector[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Vector[Boolean] = io.bullet.borer.Json.decode(jsonBytes).to[Vector[Boolean]].value @Benchmark def circe(): Vector[Boolean] = decode[Vector[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Vector[Boolean] = dslJsonDecode[Vector[Boolean]](jsonBytes) @Benchmark def jacksonScala(): Vector[Boolean] = jacksonMapper.readValue[Vector[Boolean]](jsonBytes) @Benchmark def jsoniterScala(): Vector[Boolean] = readFromArray[Vector[Boolean]](jsonBytes) @Benchmark def playJson(): Vector[Boolean] = Json.parse(jsonBytes).as[Vector[Boolean]] @Benchmark def sprayJson(): Vector[Boolean] = JsonParser(jsonBytes).convertTo[Vector[Boolean]] @Benchmark def uPickle(): Vector[Boolean] = read[Vector[Boolean]](jsonBytes) @Benchmark def weePickle(): Vector[Boolean] = FromJson(jsonBytes).transform(ToScala[Vector[Boolean]]) }
Example 55
Source File: ArrayOfJavaEnumsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfJavaEnumsWriting extends ArrayOfJavaEnumsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 56
Source File: ArrayOfOffsetTimesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time._ import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfOffsetTimesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[OffsetTime] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val n = Math.abs(i * 1498724053) OffsetTime.of(LocalTime.ofNanoOfDay(((n % 86000) | 0x1) * 1000000000L + (i % 4 match { case 0 => 0 case 1 => ((n % 1000) | 0x1) * 1000000 case 2 => ((n % 1000000) | 0x1) * 1000 case 3 => (n | 0x1) % 1000000000 })), ZoneOffset.ofHours(i % 17)) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 57
Source File: Base16Writing.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringOutput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core.{writeToArray, writeToSubArray} import org.openjdk.jmh.annotations.Benchmark class Base16Writing extends Base16Benchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj, jsonBase16Options).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj)(base16Enc).toByteArray @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(base16Codec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(base16Codec) }
Example 58
Source File: Base16Benchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class Base16Benchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Byte] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(_.toByte).toArray jsonString = obj.map("%02x" format _).mkString("\"", "", "\"") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 59
Source File: IntMapOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.immutable.IntMap class IntMapOfBooleansReading extends IntMapOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): IntMap[Boolean] = JsonStringInput.read[IntMap[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def circe(): IntMap[Boolean] = decode[IntMap[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jsoniterScala(): IntMap[Boolean] = readFromArray[IntMap[Boolean]](jsonBytes) @Benchmark def playJson(): IntMap[Boolean] = Json.parse(jsonBytes).as[IntMap[Boolean]] }
Example 60
Source File: ArrayOfLocalTimesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.LocalTime import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfLocalTimesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[LocalTime] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val n = Math.abs(i * 1498724053) LocalTime.ofNanoOfDay(((n % 86000) | 0x1) * 1000000000L + (i % 4 match { case 0 => 0 case 1 => ((n % 1000) | 0x1) * 1000000 case 2 => ((n % 1000000) | 0x1) * 1000 case 3 => (n | 0x1) % 1000000000 })) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 61
Source File: ArrayOfFloatsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfFloatsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Float] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size) .map(i => (((i * 1498724053) / Math.pow(10, i % 9)).toInt * Math.pow(10, (i % 20) - 10)).toFloat).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 62
Source File: ArrayOfEnumsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.github.plokhotnyuk.jsoniter_scala.benchmark.SuitEnum.SuitEnum import org.openjdk.jmh.annotations.{Param, Setup} object SuitEnum extends Enumeration { type SuitEnum = Value val Hearts: SuitEnum = Value(0, "Hearts") // Always set the name explicitly in your Scala enumeration definition. val Spades: SuitEnum = Value(1, "Spades") // If you still not sure, then please look and check that the following val Diamonds: SuitEnum = Value(2, "Diamonds") // synchronized block will not affect your code in run-time: val Clubs: SuitEnum = Value(3, "Clubs") // https://github.com/scala/scala/blob/1692ae306dc9a5ff3feebba6041348dfdee7cfb5/src/library/scala/Enumeration.scala#L203 } abstract class ArrayOfEnumsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[SuitEnum] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => SuitEnum((i * 1498724053) & 0x3)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 63
Source File: ArrayOfIntsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfIntsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Int] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) / Math.pow(10, i % 10)).toInt).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 64
Source File: ArrayOfDoublesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfDoublesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Double] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size) .map(i => ((i * 6971258582664805397L) / Math.pow(10, i % 17)).toLong * Math.pow(10, (i % 38) - 19)).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 65
Source File: ArrayOfDurationsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfDurationsWriting extends ArrayOfDurationsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 66
Source File: IntMapOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.immutable.IntMap abstract class IntMapOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: IntMap[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = IntMap((1 to size).map { i => (((i * 1498724053) / Math.pow(10, i % 10)).toInt, ((i * 1498724053) & 0x1) == 0) }:_*) jsonString = obj.map(e => "\"" + e._1 + "\":" + e._2).mkString("{", ",", "}") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 67
Source File: ArrayOfBigDecimalsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders.decodingConfig import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.rallyhealth.weejson.v1.jackson.FromJson //import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfBigDecimalsReading extends ArrayOfBigDecimalsBenchmark { @Benchmark def avSystemGenCodec(): Array[BigDecimal] = JsonStringInput.read[Array[BigDecimal]](new String(jsonBytes, UTF_8), jsonOptions) @Benchmark def borer(): Array[BigDecimal] = io.bullet.borer.Json.decode(jsonBytes).withConfig(decodingConfig).to[Array[BigDecimal]].value @Benchmark def circe(): Array[BigDecimal] = decode[Array[BigDecimal]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[BigDecimal] = dslJsonDecode[Array[BigDecimal]](jsonBytes) @Benchmark def jacksonScala(): Array[BigDecimal] = jacksonMapper.readValue[Array[BigDecimal]](jsonBytes) @Benchmark def jsoniterScala(): Array[BigDecimal] = readFromArray[Array[BigDecimal]](jsonBytes) @Benchmark def playJson(): Array[BigDecimal] = Json.parse(jsonBytes).as[Array[BigDecimal]] @Benchmark def sprayJson(): Array[BigDecimal] = JsonParser(jsonBytes).convertTo[Array[BigDecimal]] @Benchmark def uPickle(): Array[BigDecimal] = read[Array[BigDecimal]](jsonBytes) }
Example 68
Source File: ArrayOfBytesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfBytesWriting extends ArrayOfBytesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj)(byteArrayEnc).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonByteArrayMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj)(WeePickleFromTos.fromNonBinaryByteArray).transform(ToJson.bytes) }
Example 69
Source File: ArrayOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfBooleansReading extends ArrayOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Boolean] = JsonStringInput.read[Array[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Boolean] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Boolean]].value @Benchmark def circe(): Array[Boolean] = decode[Array[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Boolean] = dslJsonDecode[Array[Boolean]](jsonBytes) @Benchmark def jacksonScala(): Array[Boolean] = jacksonMapper.readValue[Array[Boolean]](jsonBytes) @Benchmark def jsoniterScala(): Array[Boolean] = readFromArray[Array[Boolean]](jsonBytes) @Benchmark def playJson(): Array[Boolean] = Json.parse(jsonBytes).as[Array[Boolean]] @Benchmark def sprayJson(): Array[Boolean] = JsonParser(jsonBytes).convertTo[Array[Boolean]] @Benchmark def uPickle(): Array[Boolean] = read[Array[Boolean]](jsonBytes) @Benchmark def weePickle(): Array[Boolean] = FromJson(jsonBytes).transform(ToScala[Array[Boolean]]) }
Example 70
Source File: ListOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ListOfBooleansWriting extends ListOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 71
Source File: ArrayOfOffsetDateTimesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfOffsetDateTimesWriting extends ArrayOfOffsetDateTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 72
Source File: ArrayOfZoneOffsetsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.ZoneOffset import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZoneOffsetsReading extends ArrayOfZoneOffsetsBenchmark { @Benchmark def avSystemGenCodec(): Array[ZoneOffset] = JsonStringInput.read[Array[ZoneOffset]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[ZoneOffset] = io.bullet.borer.Json.decode(jsonBytes).to[Array[ZoneOffset]].value @Benchmark def circe(): Array[ZoneOffset] = decode[Array[ZoneOffset]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[ZoneOffset] = jacksonMapper.readValue[Array[ZoneOffset]](jsonBytes) @Benchmark def jsoniterScala(): Array[ZoneOffset] = readFromArray[Array[ZoneOffset]](jsonBytes) @Benchmark def playJson(): Array[ZoneOffset] = Json.parse(jsonBytes).as[Array[ZoneOffset]] @Benchmark def sprayJson(): Array[ZoneOffset] = JsonParser(jsonBytes).convertTo[Array[ZoneOffset]] @Benchmark def uPickle(): Array[ZoneOffset] = read[Array[ZoneOffset]](jsonBytes) }
Example 73
Source File: ArrayOfShortsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfShortsReading extends ArrayOfShortsBenchmark { @Benchmark def avSystemGenCodec(): Array[Short] = JsonStringInput.read[Array[Short]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Short] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Short]].value @Benchmark def circe(): Array[Short] = decode[Array[Short]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Short] = dslJsonDecode[Array[Short]](jsonBytes) @Benchmark def jacksonScala(): Array[Short] = jacksonMapper.readValue[Array[Short]](jsonBytes) @Benchmark def jsoniterScala(): Array[Short] = readFromArray[Array[Short]](jsonBytes) @Benchmark def playJson(): Array[Short] = Json.parse(jsonBytes).as[Array[Short]] @Benchmark def sprayJson(): Array[Short] = JsonParser(jsonBytes).convertTo[Array[Short]] @Benchmark def uPickle(): Array[Short] = read[Array[Short]](jsonBytes) @Benchmark def weePickle(): Array[Short] = FromJson(jsonBytes).transform(ToScala[Array[Short]]) }
Example 74
Source File: GeoJSONWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class GeoJSONWriting extends GeoJSONBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)(geoJSONFormat)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson(geoJSONJsonFormat).compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 75
Source File: ArrayOfDurationsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Duration import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfDurationsReading extends ArrayOfDurationsBenchmark { @Benchmark def avSystemGenCodec(): Array[Duration] = JsonStringInput.read[Array[Duration]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Duration] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Duration]].value @Benchmark def circe(): Array[Duration] = decode[Array[Duration]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Duration] = jacksonMapper.readValue[Array[Duration]](jsonBytes) @Benchmark def jsoniterScala(): Array[Duration] = readFromArray[Array[Duration]](jsonBytes) @Benchmark def playJson(): Array[Duration] = Json.parse(jsonBytes).as[Array[Duration]] @Benchmark def sprayJson(): Array[Duration] = JsonParser(jsonBytes).convertTo[Array[Duration]] @Benchmark def uPickle(): Array[Duration] = read[Array[Duration]](jsonBytes) }
Example 76
Source File: ArrayOfIntsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfIntsWriting extends ArrayOfIntsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 77
Source File: MapOfIntsToBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json //import upickle.default._ //import spray.json._ class MapOfIntsToBooleansWriting extends MapOfIntsToBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) }
Example 78
Source File: NestedStructsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class NestedStructsReading extends NestedStructsBenchmark { @Benchmark def avSystemGenCodec(): NestedStructs = JsonStringInput.read[NestedStructs](new String(jsonBytes, UTF_8)) @Benchmark def circe(): NestedStructs = decode[NestedStructs](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): NestedStructs = dslJsonDecode[NestedStructs](jsonBytes) @Benchmark def jacksonScala(): NestedStructs = jacksonMapper.readValue[NestedStructs](jsonBytes) @Benchmark def jsoniterScala(): NestedStructs = readFromArray[NestedStructs](jsonBytes) @Benchmark def playJson(): NestedStructs = Json.parse(jsonBytes).as[NestedStructs] @Benchmark def sprayJson(): NestedStructs = JsonParser(jsonBytes).convertTo[NestedStructs](nestedStructsJsonFormat) @Benchmark def uPickle(): NestedStructs = read[NestedStructs](jsonBytes) @Benchmark def weePickle(): NestedStructs = FromJson(jsonBytes).transform(ToScala[NestedStructs]) }
Example 79
Source File: ArrayOfBigDecimalsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.math.MathContext import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfBigDecimalsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var sourceObj: Array[BigDecimal] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { sourceObj = (1 to size).map { i => BigDecimal(BigInt(Array.fill((i % 14) + 1)((i | 0x1).toByte)), i % 38).round(MathContext.DECIMAL128) }.toArray // up to 112-bit BigInt numbers rounded to IEEE 754 Decimal128 format (34 decimal digits) jsonString = sourceObj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } private[benchmark] def obj: Array[BigDecimal] = { val xs = sourceObj val l = xs.length val ys = new Array[BigDecimal](l) var i = 0 while (i < l) { val x = xs(i) // to avoid internal caching of the string representation ys(i) = new BigDecimal(new java.math.BigDecimal(x.bigDecimal.unscaledValue, x.bigDecimal.scale), x.mc) i += 1 } ys } }
Example 80
Source File: BinaryRedisPersistence.scala From spark-redis with BSD 3-Clause "New" or "Revised" License | 5 votes |
package org.apache.spark.sql.redis import java.nio.charset.StandardCharsets.UTF_8 import org.apache.commons.lang3.SerializationUtils import org.apache.spark.sql.Row import org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema import org.apache.spark.sql.types.StructType import redis.clients.jedis.Pipeline class BinaryRedisPersistence extends RedisPersistence[Array[Byte]] { override def save(pipeline: Pipeline, key: String, value: Array[Byte], ttl: Int): Unit = { val keyBytes = key.getBytes(UTF_8) if (ttl > 0) { pipeline.setex(keyBytes, ttl, value) } else { pipeline.set(keyBytes, value) } } override def load(pipeline: Pipeline, key: String, requiredColumns: Seq[String]): Unit = pipeline.get(key.getBytes(UTF_8)) override def encodeRow(keyName: String, value: Row): Array[Byte] = { val fields = value.schema.fields.map(_.name) val valuesArray = fields.map(f => value.getAs[Any](f)) SerializationUtils.serialize(valuesArray) } override def decodeRow(keyMap: (String, String), value: Array[Byte], schema: StructType, requiredColumns: Seq[String]): Row = { val valuesArray: Array[Any] = SerializationUtils.deserialize(value) new GenericRowWithSchema(valuesArray, schema) } }
Example 81
Source File: RocksDBSpec.scala From zio-rocksdb with Apache License 2.0 | 5 votes |
package zio.rocksdb import java.nio.charset.StandardCharsets.UTF_8 import org.{ rocksdb => jrocks } import zio.RIO import zio.rocksdb.internal.internal.ManagedPath import zio.test.Assertion._ import zio.test._ object RocksDBSpec extends DefaultRunnableSpec { override def spec = { val rocksSuite = suite("RocksDB")( testM("get/put") { val key = "key".getBytes(UTF_8) val value = "value".getBytes(UTF_8) for { _ <- RocksDB.put(key, value) result <- RocksDB.get(key) } yield assert(result)(isSome(equalTo(value))) }, testM("delete") { val key = "key".getBytes(UTF_8) val value = "value".getBytes(UTF_8) for { _ <- RocksDB.put(key, value) before <- RocksDB.get(key) _ <- RocksDB.delete(key) after <- RocksDB.get(key) } yield assert(before)(isSome(equalTo(value))) && assert(after)(isNone) }, testM("newIterator") { val data = (1 to 10).map(i => (s"key$i", s"value$i")).toList for { _ <- RIO.foreach_(data) { case (k, v) => RocksDB.put(k.getBytes(UTF_8), v.getBytes(UTF_8)) } results <- RocksDB.newIterator.runCollect resultsStr = results.map { case (k, v) => new String(k, UTF_8) -> new String(v, UTF_8) } } yield assert(resultsStr)(hasSameElements(data)) } ) rocksSuite.provideCustomLayerShared(database) } private val database = (for { dir <- ManagedPath() db <- { val opts = new jrocks.Options().setCreateIfMissing(true) RocksDB.Live.open(opts, dir.toAbsolutePath.toString) } } yield db).toLayer.mapError(TestFailure.die) }
Example 82
Source File: TransactionDBSpec.scala From zio-rocksdb with Apache License 2.0 | 5 votes |
package zio.rocksdb import java.nio.charset.StandardCharsets.UTF_8 import org.{ rocksdb => jrocks } import zio.duration._ import zio.rocksdb.internal.internal.ManagedPath import zio.test.Assertion._ import zio.test.TestAspect._ import zio.test._ import zio.{ console, RIO, ZIO } import scala.language.postfixOps object TransactionDBSpec extends DefaultRunnableSpec { override def spec = { val rocksSuite = suite("TransactionDB")( testM("get/put") { val key = "key".getBytes(UTF_8) val value = "value".getBytes(UTF_8) for { _ <- TransactionDB.put(key, value) result <- TransactionDB.get(key) } yield assert(result)(isSome(equalTo(value))) }, testM("delete") { val key = "key".getBytes(UTF_8) val value = "value".getBytes(UTF_8) for { _ <- TransactionDB.put(key, value) before <- TransactionDB.get(key) _ <- TransactionDB.delete(key) after <- TransactionDB.get(key) } yield assert(before)(isSome(equalTo(value))) && assert(after)(isNone) }, testM("newIterator") { val data = (1 to 10).map(i => (s"key$i", s"value$i")).toList for { _ <- RIO.foreach_(data) { case (k, v) => TransactionDB.put(k.getBytes(UTF_8), v.getBytes(UTF_8)) } results <- TransactionDB.newIterator.runCollect resultsStr = results.map { case (k, v) => new String(k, UTF_8) -> new String(v, UTF_8) } } yield assert(resultsStr)(hasSameElements(data)) }, testM("get/put with Console") { val key = "key".getBytes(UTF_8) val value = "value".getBytes(UTF_8) for { result <- TransactionDB.atomically(for { _ <- Transaction.put(key, value) result <- Transaction.get(key) _ <- console.putStrLn(result.toString) } yield result) } yield assert(result)(isSome(equalTo(value))) }, testM("concurrent updates to the same key") { val count = 10 val key = "COUNT".getBytes(UTF_8) val expected = isSome(equalTo(count)) for { _ <- TransactionDB.put(key, 0.toString.getBytes(UTF_8)) _ <- concurrent(count) { TransactionDB.atomically { Transaction.getForUpdate(key, exclusive = true) >>= { iCount => Transaction.put(key, iCount.map(bytesToInt).map(_ + 1).getOrElse(-1).toString.getBytes(UTF_8)) } } } actual <- TransactionDB.get(key) } yield assert(actual.map(bytesToInt))(expected) }, testM("thread safety inside transaction") { checkM(byteArray, byteArray) { (b1, b2) => for { _ <- TransactionDB.atomically { Transaction.put(b1, b2) <&> Transaction.put(b2, b1) } } yield assertCompletes } } @@ nonFlaky(10) ) @@ timeout(5 second) rocksSuite.provideCustomLayerShared(database) } private def bytesToInt(bytes: Array[Byte]): Int = new String(bytes, UTF_8).toInt private def concurrent[R, E, A](n: Int)(zio: ZIO[R, E, A]): ZIO[R, E, List[A]] = ZIO.foreachPar(0 until n)(_ => zio) private val database = (for { dir <- ManagedPath() db <- { val opts = new jrocks.Options().setCreateIfMissing(true) TransactionDB.Live.open(opts, dir.toAbsolutePath.toString) } } yield db).toLayer.mapError(TestFailure.die) private def byteArray = Gen.listOf(Gen.anyByte).map(_.toArray) }
Example 83
Source File: StandaloneKCFTests.scala From openwhisk with Apache License 2.0 | 5 votes |
package org.apache.openwhisk.standalone import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.Files import common.WskProps import org.apache.commons.io.FileUtils import org.apache.openwhisk.core.containerpool.kubernetes.test.KubeClientSupport import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner import system.basic.WskRestBasicTests @RunWith(classOf[JUnitRunner]) class StandaloneKCFTests extends WskRestBasicTests with StandaloneServerFixture with StandaloneSanityTestSupport with KubeClientSupport { override implicit val wskprops = WskProps().copy(apihost = serverUrl) //Turn on to debug locally easily override protected val dumpLogsAlways = false override protected val dumpStartupLogs = false override protected def useMockServer = false override protected def supportedTests = Set("Wsk Action REST should invoke a blocking action and get only the result") override protected def extraArgs: Seq[String] = Seq("--dev-mode", "--dev-kcf") private val podTemplate = """--- |apiVersion: "v1" |kind: "Pod" |metadata: | annotations: | allow-outbound : "true" | labels: | launcher: standalone""".stripMargin private val podTemplateFile = Files.createTempFile("whisk", null).toFile override val customConfig = { FileUtils.write(podTemplateFile, podTemplate, UTF_8) Some(s"""include classpath("standalone-kcf.conf") | |whisk { | kubernetes { | pod-template = "${podTemplateFile.toURI}" | } |}""".stripMargin) } override def afterAll(): Unit = { checkPodState() super.afterAll() podTemplateFile.delete() } def checkPodState(): Unit = { val podList = kubeClient.pods().withLabel("launcher").list() podList.getItems.isEmpty shouldBe false } }
Example 84
Source File: ConfigMapValueTests.scala From openwhisk with Apache License 2.0 | 5 votes |
package org.apache.openwhisk.common import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.Files import com.typesafe.config.ConfigFactory import org.apache.commons.io.FileUtils import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner import org.scalatest.{FlatSpec, Matchers} import pureconfig._ import pureconfig.generic.auto._ @RunWith(classOf[JUnitRunner]) class ConfigMapValueTests extends FlatSpec with Matchers { behavior of "ConfigMapValue" case class ValueTest(template: ConfigMapValue, count: Int) it should "read from string" in { val config = ConfigFactory.parseString(""" |whisk { | value-test { | template = "test string" | count = 42 | } |}""".stripMargin) val valueTest = readValueTest(config) valueTest.template.value shouldBe "test string" } it should "read from file reference" in { val file = Files.createTempFile("whisk", null).toFile FileUtils.write(file, "test string", UTF_8) val config = ConfigFactory.parseString(s""" |whisk { | value-test { | template = "${file.toURI}" | count = 42 | } |}""".stripMargin) val valueTest = readValueTest(config) valueTest.template.value shouldBe "test string" file.delete() } private def readValueTest(config: com.typesafe.config.Config) = { loadConfigOrThrow[ValueTest](config.getConfig("whisk.value-test")) } }
Example 85
Source File: ConfigMapValue.scala From openwhisk with Apache License 2.0 | 5 votes |
package org.apache.openwhisk.common import java.io.File import java.net.URI import java.nio.charset.StandardCharsets.UTF_8 import org.apache.commons.io.FileUtils import pureconfig.ConfigReader import pureconfig.ConvertHelpers.catchReadError class ConfigMapValue private (val value: String) object ConfigMapValue { def apply(config: String): ConfigMapValue = { val value = if (config.startsWith("file:")) { val uri = new URI(config) val file = new File(uri) FileUtils.readFileToString(file, UTF_8) } else config new ConfigMapValue(value) } implicit val reader: ConfigReader[ConfigMapValue] = ConfigReader.fromString[ConfigMapValue](catchReadError(apply)) }
Example 86
Source File: Prometheus.scala From openwhisk with Apache License 2.0 | 5 votes |
package org.apache.openwhisk.common import java.nio.charset.StandardCharsets.UTF_8 import akka.http.scaladsl.model.{ContentType, HttpCharsets, HttpEntity, MediaType} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route import kamon.Kamon import kamon.prometheus.PrometheusReporter class KamonPrometheus extends AutoCloseable { private val reporter = new PrometheusReporter private val v4: ContentType = ContentType.apply( MediaType.textWithFixedCharset("plain", HttpCharsets.`UTF-8`).withParams(Map("version" -> "0.0.4"))) Kamon.registerModule("prometheus", reporter) def route: Route = path("metrics") { get { encodeResponse { complete(getReport()) } } } private def getReport() = HttpEntity(v4, reporter.scrapeData().getBytes(UTF_8)) override def close(): Unit = reporter.stop() } object MetricsRoute { private val impl = if (TransactionId.metricsKamon && TransactionId.metricConfig.prometheusEnabled) Some(new KamonPrometheus) else None def apply(): Route = impl.map(_.route).getOrElse(reject) }
Example 87
Source File: CloudFrontSigner.scala From openwhisk with Apache License 2.0 | 5 votes |
package org.apache.openwhisk.core.database.s3 import java.io.ByteArrayInputStream import java.nio.charset.StandardCharsets.UTF_8 import java.security.PrivateKey import java.time.Instant import java.util.Date import akka.http.scaladsl.model.Uri import com.amazonaws.auth.PEM import com.amazonaws.services.cloudfront.CloudFrontUrlSigner import com.amazonaws.services.cloudfront.util.SignerUtils import com.amazonaws.services.cloudfront.util.SignerUtils.Protocol import scala.concurrent.duration._ case class CloudFrontConfig(domainName: String, keyPairId: String, privateKey: String, timeout: FiniteDuration = 10.minutes) case class CloudFrontSigner(config: CloudFrontConfig) extends UrlSigner { private val privateKey = createPrivateKey(config.privateKey) override def getSignedURL(s3ObjectKey: String): Uri = { val resourcePath = SignerUtils.generateResourcePath(Protocol.https, config.domainName, s3ObjectKey) val date = Date.from(Instant.now().plusSeconds(config.timeout.toSeconds)) val url = CloudFrontUrlSigner.getSignedURLWithCannedPolicy(resourcePath, config.keyPairId, privateKey, date) Uri(url) } override def toString: String = s"CloudFront Signer - ${config.domainName}" private def createPrivateKey(keyContent: String): PrivateKey = { val is = new ByteArrayInputStream(keyContent.getBytes(UTF_8)) PEM.readPrivateKey(is) } }
Example 88
Source File: Fresh.scala From sbt-fresh with Apache License 2.0 | 5 votes |
package de.heikoseeberger.sbtfresh import de.heikoseeberger.sbtfresh.license.License import java.nio.charset.StandardCharsets.UTF_8 import java.nio.file.{ Files, Path } import java.nio.file.StandardCopyOption.REPLACE_EXISTING import org.eclipse.jgit.api.Git private final class Fresh( buildDir: Path, organization: String, name: String, author: String, license: Option[License] ) { require(organization.nonEmpty, "organization must not be empty!") require(name.nonEmpty, "name must not be empty!") private val packageSegments = { val all = (organization.segments ++ name.segments).map(_.toLowerCase) val tail = all.tail.zip(all).collect { case (s1, s2) if s1 != s2 => s1 } all.head +: tail } def initialCommit(): Unit = { val git = Git.init().setDirectory(buildDir.toFile).call() git.add().addFilepattern(".").call() git.commit().setMessage("Fresh project, created with sbt-fresh").call() } def writeBuildProperties(): Path = write("project/build.properties", Template.buildProperties) def writeBuildSbt(setUpTravis: Boolean, setUpWartremover: Boolean): Path = write( "build.sbt", Template.buildSbt( organization, name, packageSegments, author, license, setUpTravis, setUpWartremover ) ) def writeGitignore(): Path = write(".gitignore", Template.gitignore) def writeLicense(): Unit = license.foreach(l => copy("LICENSE", l.id)) def writeNotice(): Path = write("NOTICE", Template.notice(author)) def writePlugins(setUpTravis: Boolean, setUpWartremover: Boolean): Path = write("project/plugins.sbt", Template.plugins(setUpTravis, setUpWartremover)) def writeReadme(): Path = write("README.md", Template.readme(name, license)) def writeScalafmt(): Path = write(".scalafmt.conf", Template.scalafmtConf) def writeTravisYml(): Path = write(".travis.yml", Template.travisYml) private def write(path: String, content: String) = Files.write(resolve(path), content.getBytes(UTF_8)) private def copy(path: String, name: String) = Files.copy(getClass.getResourceAsStream(s"/$name"), resolve(path), REPLACE_EXISTING) private def resolve(path: String) = { val resolved = buildDir.resolve(path) if (resolved.getParent != null) Files.createDirectories(resolved.getParent) resolved } }
Example 89
Source File: Memo.scala From scala-stellar-sdk with Apache License 2.0 | 5 votes |
package stellar.sdk.model import java.nio.charset.StandardCharsets.UTF_8 import cats.data.State import stellar.sdk.util.ByteArrays._ import stellar.sdk.model.xdr.{Decode, Encode} import scala.util.Try sealed trait Memo { def encode: LazyList[Byte] } object Memo extends Decode { def decode: State[Seq[Byte], Memo] = switch( State.pure(NoMemo), string.map(MemoText), long.map(MemoId), bytes.map(_.toIndexedSeq).map(MemoHash(_)), bytes.map(_.toIndexedSeq).map(MemoReturnHash(_)) ) } case object NoMemo extends Memo { override def encode: LazyList[Byte] = Encode.int(0) } case class MemoText(text: String) extends Memo { val Length = 28 val bytes = text.getBytes(UTF_8) assert(bytes.length <= Length, s"Text exceeded limit (${bytes.length}/$Length bytes)") override def encode: LazyList[Byte] = Encode.int(1) ++ Encode.string(text) } case class MemoId(id: Long) extends Memo { override def encode: LazyList[Byte] = Encode.int(2) ++ Encode.long(id) def unsignedId: BigInt = BigInt(java.lang.Long.toUnsignedString(id)) override def toString = s"MemoId(${unsignedId.toString()})" } sealed trait MemoWithHash extends Memo { val Length = 32 val bs: Seq[Byte] val bytes: Array[Byte] = paddedByteArray(bs.toArray, Length) def hex: String = bytesToHex(bytes) def hexTrim: String = bytesToHex(bs) } case class MemoHash(bs: Seq[Byte]) extends MemoWithHash { assert(bs.length <= Length, s"Hash exceeded limit (${bytes.length}/$Length bytes)") override def encode: LazyList[Byte] = Encode.int(3) ++ Encode.bytes(bs) } object MemoHash { def from(hex: String): Try[MemoHash] = Try(MemoHash(hexToBytes(hex))) } case class MemoReturnHash(bs: Seq[Byte]) extends MemoWithHash { assert(bs.length <= Length, s"Hash exceeded limit (${bytes.length}/$Length bytes)") override def encode: LazyList[Byte] = Encode.int(4) ++ Encode.bytes(bs) } object MemoReturnHash { def from(hex: String) = Try(MemoReturnHash(hexToBytes(hex))) }
Example 90
Source File: AccountResponse.scala From scala-stellar-sdk with Apache License 2.0 | 5 votes |
package stellar.sdk.model.response import java.nio.charset.StandardCharsets.UTF_8 import org.json4s.{DefaultFormats, Formats} import org.json4s.JsonAST.{JArray, JObject} import stellar.sdk._ import stellar.sdk.model.Amount.toBaseUnits import stellar.sdk.model._ import stellar.sdk.util.ByteArrays case class AccountResponse(id: PublicKey, lastSequence: Long, subEntryCount: Int, thresholds: Thresholds, authRequired: Boolean, authRevocable: Boolean, balances: List[Balance], signers: List[Signer], data: Map[String, Array[Byte]]) { def toAccount: Account = Account(AccountId(id.publicKey), lastSequence + 1) def decodedData: Map[String, String] = data.map { case (k, v) => k -> new String(v, UTF_8) } } object AccountRespDeserializer extends ResponseParser[AccountResponse]({ o: JObject => implicit val formats: Formats = DefaultFormats val id = KeyPair.fromAccountId((o \ "id").extract[String]) val seq = (o \ "sequence").extract[String].toLong val subEntryCount = (o \ "subentry_count").extract[Int] val lowThreshold = (o \ "thresholds" \ "low_threshold").extract[Int] val mediumThreshold = (o \ "thresholds" \ "med_threshold").extract[Int] val highThreshold = (o \ "thresholds" \ "high_threshold").extract[Int] val authRequired = (o \ "flags" \ "auth_required").extract[Boolean] val authRevocable = (o \ "flags" \ "auth_revocable").extract[Boolean] val JArray(jsBalances) = o \ "balances" val balances = jsBalances.map { case balObj: JObject => val units = toBaseUnits((balObj \ "balance").extract[String].toDouble).get val amount = (balObj \ "asset_type").extract[String] match { case "credit_alphanum4" => Amount(units, IssuedAsset4( code = (balObj \ "asset_code").extract[String], issuer = KeyPair.fromAccountId((balObj \ "asset_issuer").extract[String]) )) case "credit_alphanum12" => Amount(units, IssuedAsset12( code = (balObj \ "asset_code").extract[String], issuer = KeyPair.fromAccountId((balObj \ "asset_issuer").extract[String]) )) case "native" => NativeAmount(units) case t => throw new RuntimeException(s"Unrecognised asset type: $t") } val limit = (balObj \ "limit").extractOpt[String].map(BigDecimal(_)).map(toBaseUnits).map(_.get) val buyingLiabilities = toBaseUnits(BigDecimal((balObj \ "buying_liabilities").extract[String])).get val sellingLiabilities = toBaseUnits(BigDecimal((balObj \ "selling_liabilities").extract[String])).get val authorised = (balObj \ "is_authorized").extractOpt[Boolean].getOrElse(false) val authorisedToMaintainLiabilities = (balObj \ "is_authorized_to_maintain_liabilities") .extractOpt[Boolean].getOrElse(false) Balance(amount, limit, buyingLiabilities, sellingLiabilities, authorised, authorisedToMaintainLiabilities) case _ => throw new RuntimeException(s"Expected js object at 'balances'") } val JArray(jsSigners) = o \ "signers" val signers = jsSigners.map { case signerObj: JObject => val key = StrKey.decodeFromString((signerObj \ "key").extract[String]).asInstanceOf[SignerStrKey] val weight = (signerObj \ "weight").extract[Int] Signer(key, weight) case _ => throw new RuntimeException(s"Expected js object at 'signers'") } val JObject(dataFields) = o \ "data" val data = dataFields.map{ case (k, v) => k -> ByteArrays.base64(v.extract[String]) }.toMap AccountResponse(id, seq, subEntryCount, Thresholds(lowThreshold, mediumThreshold, highThreshold), authRequired, authRevocable, balances, signers, data) })
Example 91
Source File: MiniClusterUtils.scala From incubator-livy with Apache License 2.0 | 5 votes |
package org.apache.livy.test.framework import java.io._ import java.nio.charset.StandardCharsets.UTF_8 import java.util.Properties import scala.collection.JavaConverters._ import org.apache.hadoop.conf.Configuration trait MiniClusterUtils { protected def saveProperties(props: Map[String, String], dest: File): Unit = { val jprops = new Properties() props.foreach { case (k, v) => jprops.put(k, v) } val tempFile = new File(dest.getAbsolutePath() + ".tmp") val out = new OutputStreamWriter(new FileOutputStream(tempFile), UTF_8) try { jprops.store(out, "Configuration") } finally { out.close() } tempFile.renameTo(dest) } protected def loadProperties(file: File): Map[String, String] = { val in = new InputStreamReader(new FileInputStream(file), UTF_8) val props = new Properties() try { props.load(in) } finally { in.close() } props.asScala.toMap } protected def saveConfig(conf: Configuration, dest: File): Unit = { val redacted = new Configuration(conf) // This setting references a test class that is not available when using a real Spark // installation, so remove it from client configs. redacted.unset("net.topology.node.switch.mapping.impl") val out = new FileOutputStream(dest) try { redacted.writeXml(out) } finally { out.close() } } }
Example 92
Source File: LivyConnectionSpec.scala From incubator-livy with Apache License 2.0 | 5 votes |
package org.apache.livy.client.http import java.io.IOException import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 import org.apache.http.client.utils.URIBuilder import org.eclipse.jetty.security._ import org.eclipse.jetty.security.authentication.BasicAuthenticator import org.eclipse.jetty.util.security._ import org.scalatest.{BeforeAndAfterAll, FunSpecLike} import org.scalatest.Matchers._ import org.scalatra.servlet.ScalatraListener import org.apache.livy.{LivyBaseUnitTestSuite, LivyConf} import org.apache.livy.server.WebServer class LivyConnectionSpec extends FunSpecLike with BeforeAndAfterAll with LivyBaseUnitTestSuite { describe("LivyConnection") { def basicAuth(username: String, password: String, realm: String): SecurityHandler = { val roles = Array("user") val l = new HashLoginService() l.putUser(username, Credential.getCredential(password), roles) l.setName(realm) val constraint = new Constraint() constraint.setName(Constraint.__BASIC_AUTH) constraint.setRoles(roles) constraint.setAuthenticate(true) val cm = new ConstraintMapping() cm.setConstraint(constraint) cm.setPathSpec("/*") val csh = new ConstraintSecurityHandler() csh.setAuthenticator(new BasicAuthenticator()) csh.setRealmName(realm) csh.addConstraintMapping(cm) csh.setLoginService(l) csh } def test(password: String, livyConf: LivyConf = new LivyConf()): Unit = { val username = "user name" val server = new WebServer(livyConf, "0.0.0.0", 0) server.context.setSecurityHandler(basicAuth(username, password, "realm")) server.context.setResourceBase("src/main/org/apache/livy/server") server.context.setInitParameter(ScalatraListener.LifeCycleKey, classOf[HttpClientTestBootstrap].getCanonicalName) server.context.addEventListener(new ScalatraListener) server.start() val utf8Name = UTF_8.name() val uri = new URIBuilder() .setScheme(server.protocol) .setHost(server.host) .setPort(server.port) .setUserInfo(URLEncoder.encode(username, utf8Name), URLEncoder.encode(password, utf8Name)) .build() info(uri.toString) val conn = new LivyConnection(uri, new HttpConf(null)) try { conn.get(classOf[Object], "/") should not be (null) } finally { conn.close() } server.stop() server.join() } it("should support HTTP auth with password") { test("pass:word") } it("should support HTTP auth with empty password") { test("") } it("should be failed with large header size") { val livyConf = new LivyConf() .set(LivyConf.REQUEST_HEADER_SIZE, 1024) .set(LivyConf.RESPONSE_HEADER_SIZE, 1024) val pwd = "test-password" * 100 val exception = intercept[IOException](test(pwd, livyConf)) exception.getMessage.contains("Request Header Fields Too Large") should be(true) } it("should be succeeded with configured header size") { val livyConf = new LivyConf() .set(LivyConf.REQUEST_HEADER_SIZE, 2048) .set(LivyConf.RESPONSE_HEADER_SIZE, 2048) val pwd = "test-password" * 100 test(pwd, livyConf) } } }
Example 93
Source File: Utils.scala From incubator-livy with Apache License 2.0 | 5 votes |
package org.apache.livy import java.io.{Closeable, File, InputStreamReader} import java.net.URL import java.nio.charset.StandardCharsets.UTF_8 import java.security.SecureRandom import java.util.Properties import scala.annotation.tailrec import scala.collection.JavaConverters._ import scala.concurrent.TimeoutException import scala.concurrent.duration.Duration import org.apache.commons.codec.binary.Base64 object Utils { def getPropertiesFromFile(file: File): Map[String, String] = { loadProperties(file.toURI().toURL()) } def loadProperties(url: URL): Map[String, String] = { val inReader = new InputStreamReader(url.openStream(), UTF_8) try { val properties = new Properties() properties.load(inReader) properties.stringPropertyNames().asScala.map { k => (k, properties.getProperty(k).trim()) }.toMap } finally { inReader.close() } } def isProcessAlive(process: Process): Boolean = { try { process.exitValue() false } catch { case _: IllegalThreadStateException => true } } def startDaemonThread(name: String)(f: => Unit): Thread = { val thread = new Thread(name) { override def run(): Unit = f } thread.setDaemon(true) thread.start() thread } def usingResource[A <: Closeable, B](resource: A)(f: A => B): B = { try { f(resource) } finally { resource.close() } } def createSecret(secretBitLength: Int): String = { val rnd = new SecureRandom() val secretBytes = new Array[Byte](secretBitLength / java.lang.Byte.SIZE) rnd.nextBytes(secretBytes) Base64.encodeBase64String(secretBytes) } }
Example 94
Source File: JwsAlgorithm.scala From akka-http-session with Apache License 2.0 | 5 votes |
package com.softwaremill.session import java.nio.charset.StandardCharsets.UTF_8 import java.security.spec.PKCS8EncodedKeySpec import java.security.{KeyFactory, PrivateKey, Signature} import java.util.Base64 import com.typesafe.config.Config import javax.crypto.Mac import javax.crypto.spec.SecretKeySpec import scala.util.{Failure, Success, Try} sealed trait JwsAlgorithm { def value: String def sign(message: String): String protected def encode(bytes: Array[Byte]): String = Base64.getUrlEncoder.withoutPadding().encodeToString(bytes) } object JwsAlgorithm { case class Rsa(privateKey: PrivateKey) extends JwsAlgorithm { override val value: String = "RS256" override def sign(message: String): String = { val privateSignature: Signature = Signature.getInstance("SHA256withRSA") privateSignature.initSign(privateKey) privateSignature.update(message.getBytes(UTF_8)) encode(privateSignature.sign()) } } object Rsa { def fromConfig(jwsConfig: Config): Try[Rsa] = { def readKeyFromConf(): Try[String] = { val configKey = "rsa-private-key" Option(jwsConfig.hasPath(configKey)) .filter(identity) .flatMap(_ => Option(jwsConfig.getString(configKey))) .filter(_.trim.nonEmpty) .map(_.replaceAll("\\s", "").replaceAll("-----[^-]+-----", "")) .map(Success(_)) .getOrElse(Failure(new IllegalArgumentException( "akka.http.session.jws.rsa-private-key must be defined in order to use alg = RS256"))) } readKeyFromConf() .flatMap { key => Try { val keyFactory = KeyFactory.getInstance("RSA") val privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(Base64.getDecoder.decode(key))) Rsa(privateKey) }.recoverWith { case ex => Failure(new IllegalArgumentException("Invalid RSA private key", ex)) } } } } case class HmacSHA256(serverSecret: String) extends JwsAlgorithm { override val value: String = "HS256" override def sign(message: String): String = { val key = serverSecret.getBytes("UTF-8") val mac = Mac.getInstance("HmacSHA256") mac.init(new SecretKeySpec(key, "HmacSHA256")) encode(mac.doFinal(message.getBytes("utf-8"))) } } }
Example 95
Source File: AckerConsumerDemo.scala From fs2-rabbit with Apache License 2.0 | 5 votes |
package dev.profunktor.fs2rabbit.examples import java.nio.charset.StandardCharsets.UTF_8 import cats.data.Kleisli import cats.effect._ import cats.implicits._ import dev.profunktor.fs2rabbit.config.declaration.{DeclarationExchangeConfig, DeclarationQueueConfig} import dev.profunktor.fs2rabbit.interpreter.RabbitClient import dev.profunktor.fs2rabbit.json.Fs2JsonEncoder import dev.profunktor.fs2rabbit.model.AckResult.Ack import dev.profunktor.fs2rabbit.model.AmqpFieldValue.{LongVal, StringVal} import dev.profunktor.fs2rabbit.model.ExchangeType.Topic import dev.profunktor.fs2rabbit.model._ import fs2._ class AckerConsumerDemo[F[_]: Concurrent: Timer](fs2Rabbit: RabbitClient[F]) { private val queueName = QueueName("testQ") private val exchangeName = ExchangeName("testEX") private val routingKey = RoutingKey("testRK") implicit val stringMessageEncoder = Kleisli[F, AmqpMessage[String], AmqpMessage[Array[Byte]]](s => s.copy(payload = s.payload.getBytes(UTF_8)).pure[F]) def logPipe: Pipe[F, AmqpEnvelope[String], AckResult] = _.evalMap { amqpMsg => putStrLn(s"Consumed: $amqpMsg").as(Ack(amqpMsg.deliveryTag)) } val publishingFlag: PublishingFlag = PublishingFlag(mandatory = true) // Run when there's no consumer for the routing key specified by the publisher and the flag mandatory is true val publishingListener: PublishReturn => F[Unit] = pr => putStrLn(s"Publish listener: $pr") private val mkChannel = fs2Rabbit.createConnection.flatMap(fs2Rabbit.createChannel) val program: F[Unit] = mkChannel.use { implicit channel => for { _ <- fs2Rabbit.declareQueue(DeclarationQueueConfig.default(queueName)) _ <- fs2Rabbit.declareExchange(DeclarationExchangeConfig.default(exchangeName, Topic)) _ <- fs2Rabbit.bindQueue(queueName, exchangeName, routingKey) (acker, consumer) <- fs2Rabbit.createAckerConsumer[String](queueName) publisher <- fs2Rabbit.createPublisherWithListener[AmqpMessage[String]]( exchangeName, routingKey, publishingFlag, publishingListener ) _ <- new Flow[F, String](consumer, acker, logPipe, publisher).flow.compile.drain } yield () } } class Flow[F[_]: Concurrent, A]( consumer: Stream[F, AmqpEnvelope[A]], acker: AckResult => F[Unit], logger: Pipe[F, AmqpEnvelope[A], AckResult], publisher: AmqpMessage[String] => F[Unit] ) { import io.circe.generic.auto._ case class Address(number: Int, streetName: String) case class Person(id: Long, name: String, address: Address) private val jsonEncoder = new Fs2JsonEncoder import jsonEncoder.jsonEncode val jsonPipe: Pipe[Pure, AmqpMessage[Person], AmqpMessage[String]] = _.map(jsonEncode[Person]) val simpleMessage = AmqpMessage("Hey!", AmqpProperties(headers = Map("demoId" -> LongVal(123), "app" -> StringVal("fs2RabbitDemo")))) val classMessage = AmqpMessage(Person(1L, "Sherlock", Address(212, "Baker St")), AmqpProperties.empty) val flow: Stream[F, Unit] = Stream( Stream(simpleMessage).covary[F].evalMap(publisher), Stream(classMessage).covary[F].through(jsonPipe).evalMap(publisher), consumer.through(logger).evalMap(acker) ).parJoin(3) }
Example 96
Source File: AutoAckConsumerDemo.scala From fs2-rabbit with Apache License 2.0 | 5 votes |
package dev.profunktor.fs2rabbit.examples import java.nio.charset.StandardCharsets.UTF_8 import cats.data.Kleisli import cats.effect._ import cats.implicits._ import dev.profunktor.fs2rabbit.config.declaration.DeclarationQueueConfig import dev.profunktor.fs2rabbit.interpreter.RabbitClient import dev.profunktor.fs2rabbit.json.Fs2JsonEncoder import dev.profunktor.fs2rabbit.model.AckResult.Ack import dev.profunktor.fs2rabbit.model.AmqpFieldValue.{LongVal, StringVal} import dev.profunktor.fs2rabbit.model._ import fs2.{Pipe, Pure, Stream} import io.circe.Encoder class AutoAckConsumerDemo[F[_]: Concurrent](R: RabbitClient[F]) { private val queueName = QueueName("testQ") private val exchangeName = ExchangeName("testEX") private val routingKey = RoutingKey("testRK") implicit val stringMessageEncoder = Kleisli[F, AmqpMessage[String], AmqpMessage[Array[Byte]]](s => s.copy(payload = s.payload.getBytes(UTF_8)).pure[F]) def logPipe: Pipe[F, AmqpEnvelope[String], AckResult] = _.evalMap { amqpMsg => putStrLn(s"Consumed: $amqpMsg").as(Ack(amqpMsg.deliveryTag)) } val program: F[Unit] = R.createConnectionChannel.use { implicit channel => for { _ <- R.declareQueue(DeclarationQueueConfig.default(queueName)) _ <- R.declareExchange(exchangeName, ExchangeType.Topic) _ <- R.bindQueue(queueName, exchangeName, routingKey) publisher <- R.createPublisher[AmqpMessage[String]](exchangeName, routingKey) consumer <- R.createAutoAckConsumer[String](queueName) _ <- new AutoAckFlow[F, String](consumer, logPipe, publisher).flow.compile.drain } yield () } } class AutoAckFlow[F[_]: Concurrent, A]( consumer: Stream[F, AmqpEnvelope[A]], logger: Pipe[F, AmqpEnvelope[A], AckResult], publisher: AmqpMessage[String] => F[Unit] ) { import io.circe.generic.auto._ case class Address(number: Int, streetName: String) case class Person(id: Long, name: String, address: Address) private def jsonEncoder = new Fs2JsonEncoder def encoderPipe[T: Encoder]: Pipe[F, AmqpMessage[T], AmqpMessage[String]] = _.map(jsonEncoder.jsonEncode[T]) val jsonPipe: Pipe[Pure, AmqpMessage[Person], AmqpMessage[String]] = _.map(jsonEncoder.jsonEncode[Person]) val simpleMessage = AmqpMessage("Hey!", AmqpProperties(headers = Map("demoId" -> LongVal(123), "app" -> StringVal("fs2RabbitDemo")))) val classMessage = AmqpMessage(Person(1L, "Sherlock", Address(212, "Baker St")), AmqpProperties.empty) val flow: Stream[F, Unit] = Stream( Stream(simpleMessage).covary[F].evalMap(publisher), Stream(classMessage).covary[F].through(encoderPipe[Person]).evalMap(publisher), consumer.through(logger).through(_.evalMap(putStrLn(_))) ).parJoin(3) }
Example 97
Source File: StringKeyRDD.scala From cuesheet with Apache License 2.0 | 5 votes |
package com.kakao.cuesheet.convert import java.nio.charset.StandardCharsets.UTF_8 import com.kakao.mango.concurrent._ import com.kakao.mango.couchbase.Couchbase import com.kakao.mango.hbase.HBase import com.kakao.mango.json._ import com.kakao.mango.util.Retry import org.apache.spark.rdd.RDD import scala.concurrent.duration._ class StringKeyRDD[T](rdd: RDD[(String, T)]) extends SaveToES(rdd) { def saveToCouchbase(nodes: Seq[String], bucket: String, expiry: Int = 0, maxRate: Double = 1e7, password: String = null): Unit = { // rate per executor val rate = maxRate / rdd.sparkContext.getExecutorMemoryStatus.size rdd.foreachPartition { partition => // BackPressureException may happen, so retry 10 times // if that fails, Spark task scheduler may retry again. val cluster = Couchbase(nodes: _*) val client = cluster.bucket(bucket, password) val converted = partition.map { case (key, value: Array[Byte]) => (key, new String(value, UTF_8)) case (key, value: String) => (key, value) case (key, value) => (key, toJson(value)) } for (group <- converted.grouped(1000)) { Retry(10, 100.millis) { client.putAll(group, rate, expiry).sync() } } cluster.disconnect() } } def saveToHBase(quorum: String, table: String, family: String, qualifier: String, maxRate: Double = 1e7): Unit = { // rate per executor val rate = maxRate / rdd.sparkContext.getExecutorMemoryStatus.size rdd.foreachPartition { partition => val hbase = HBase(quorum) val column = hbase.column(table, family, qualifier) val converted = partition.map { case (key, value: Array[Byte]) => (key.getBytes(UTF_8), value) case (key, value: String) => (key.getBytes(UTF_8), value.getBytes(UTF_8)) case (key, value) => (key.getBytes(UTF_8), serialize(value)) } for (group <- converted.grouped(1000)) { Retry(10, 100.millis) { column.putAllBytes(group, rate).sync() } } } } }
Example 98
Source File: MultipartFileTest.scala From fintrospect with Apache License 2.0 | 5 votes |
package io.fintrospect.parameters import java.io.File import java.nio.charset.StandardCharsets.UTF_8 import com.google.common.io.Files import com.twitter.io.{Buf, Bufs} import org.scalatest.{FunSpec, Matchers} class MultipartFileTest extends FunSpec with Matchers { describe("OnDiskMultiPartFile") { it("converts toFileElement") { val tempFile = File.createTempFile("temp", "file") Files.write("hello bob", tempFile, UTF_8) tempFile.deleteOnExit() Bufs.asUtf8String(OnDiskMultiPartFile("file", tempFile, None).toFileElement("hello").content) shouldBe "hello bob" } } describe("InMemoryMultiPartFile") { it("converts toFileElement") { Bufs.asUtf8String(InMemoryMultiPartFile("file", Buf.Utf8("hello bob"), None).toFileElement("hello").content) shouldBe "hello bob" } } }
Example 99
Source File: VerifyingSpec.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.macros import java.io.{ByteArrayInputStream, ByteArrayOutputStream} import java.nio.ByteBuffer import java.nio.charset.StandardCharsets.UTF_8 import com.github.plokhotnyuk.jsoniter_scala.core._ import org.scalatest.wordspec.AnyWordSpec import org.scalatest.matchers.should.Matchers class VerifyingSpec extends AnyWordSpec with Matchers { def verifySerDeser[T](codec: JsonValueCodec[T], obj: T, json: String, cfg: WriterConfig = WriterConfig): Unit = { verifySer(codec, obj, json, cfg) verifyDeser(codec, obj, json) } def verifySer[T](codec: JsonValueCodec[T], obj: T, json: String, cfg: WriterConfig = WriterConfig): Unit = { val len = json.getBytes(UTF_8).length verifyDirectByteBufferSer(codec, obj, len, cfg, json) verifyHeapByteBufferSer(codec, obj, len, cfg, json) verifyOutputStreamSer(codec, obj, cfg, json) verifyArraySer(codec, obj, cfg, json) } def verifyDeser[T](codec: JsonValueCodec[T], obj: T, json: String): Unit = verifyDeserByCheck[T](codec, json, check = (_: T) shouldBe obj) def verifyDeserByCheck[T](codec: JsonValueCodec[T], json: String, check: T => Unit): Unit = { val jsonBytes = json.getBytes(UTF_8) verifyDirectByteBufferDeser(codec, jsonBytes, check) verifyHeapByteBufferDeser(codec, jsonBytes, check) verifyInputStreamDeser(codec, jsonBytes, check) verifyByteArrayDeser(codec, jsonBytes, check) } def verifyDeserError[T](codec: JsonValueCodec[T], json: String, msg: String): Unit = verifyDeserError(codec, json.getBytes(UTF_8), msg) def verifyDeserError[T](codec: JsonValueCodec[T], jsonBytes: Array[Byte], msg: String): Unit = { assert(intercept[JsonReaderException](verifyDirectByteBufferDeser(codec, jsonBytes, (_: T) => ())) .getMessage.contains(msg)) assert(intercept[JsonReaderException](verifyHeapByteBufferDeser(codec, jsonBytes, (_: T) => ())) .getMessage.contains(msg)) assert(intercept[JsonReaderException](verifyInputStreamDeser(codec, jsonBytes, (_: T) => ())) .getMessage.contains(msg)) assert(intercept[JsonReaderException](verifyByteArrayDeser(codec, jsonBytes, (_: T) => ())) .getMessage.contains(msg)) } def verifyDirectByteBufferSer[T](codec: JsonValueCodec[T], obj: T, len: Int, cfg: WriterConfig, expected: String): Unit = { val directBuf = ByteBuffer.allocateDirect(len + 100) directBuf.position(0) writeToByteBuffer(obj, directBuf, cfg)(codec) directBuf.position(0) val buf = new Array[Byte](len) directBuf.get(buf) toString(buf) shouldBe expected } def verifyHeapByteBufferSer[T](codec: JsonValueCodec[T], obj: T, len: Int, cfg: WriterConfig, expected: String): Unit = { val heapBuf = ByteBuffer.wrap(new Array[Byte](len + 100)) heapBuf.position(0) writeToByteBuffer(obj, heapBuf, cfg)(codec) heapBuf.position(0) val buf = new Array[Byte](len) heapBuf.get(buf) toString(buf) shouldBe expected } def verifyOutputStreamSer[T](codec: JsonValueCodec[T], obj: T, cfg: WriterConfig, expected: String): Unit = { val baos = new ByteArrayOutputStream writeToStream(obj, baos, cfg)(codec) toString(baos.toByteArray) shouldBe expected } def verifyArraySer[T](codec: JsonValueCodec[T], obj: T, cfg: WriterConfig, expected: String): Unit = toString(writeToArray(obj, cfg)(codec)) shouldBe expected def verifyDirectByteBufferDeser[T](codec: JsonValueCodec[T], json: Array[Byte], check: T => Unit): Unit = { val directBuf = ByteBuffer.allocateDirect(json.length) directBuf.put(json) directBuf.position(0) check(readFromByteBuffer(directBuf)(codec)) } def verifyHeapByteBufferDeser[T](codec: JsonValueCodec[T], json: Array[Byte], check: T => Unit): Unit = check(readFromByteBuffer(ByteBuffer.wrap(json))(codec)) def verifyInputStreamDeser[T](codec: JsonValueCodec[T], json: Array[Byte], check: T => Unit): Unit = check(readFromStream(new ByteArrayInputStream(json))(codec)) def verifyByteArrayDeser[T](codec: JsonValueCodec[T], json: Array[Byte], check: T => Unit): Unit = check(readFromArray(json)(codec)) def toString(json: Array[Byte]): String = new String(json, 0, json.length, UTF_8) }
Example 100
Source File: ArrayOfZoneOffsetsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.ZoneOffset import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfZoneOffsetsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[ZoneOffset] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ZoneOffset.ofHoursMinutesSeconds(i % 17, (i % 4) * 15, 0)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 101
Source File: MutableBitSetReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.mutable class MutableBitSetReading extends MutableBitSetBenchmark { @Benchmark def avSystemGenCodec(): mutable.BitSet = JsonStringInput.read[mutable.BitSet](new String(jsonBytes, UTF_8)) @Benchmark def circe(): mutable.BitSet = decode[mutable.BitSet](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jsoniterScala(): mutable.BitSet = readFromArray[mutable.BitSet](jsonBytes) @Benchmark def playJson(): mutable.BitSet = Json.parse(jsonBytes).as[mutable.BitSet] }
Example 102
Source File: ArrayOfFloatsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.jsoniter.output.JsoniterJavaSerializer import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala //import io.circe.parser._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json //import spray.json._ class ArrayOfFloatsWriting extends ArrayOfFloatsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 103
Source File: ArrayOfLocalDatesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLocalDatesWriting extends ArrayOfLocalDatesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 104
Source File: Base64Writing.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringOutput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core.{writeToArray, writeToSubArray} import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import org.openjdk.jmh.annotations.Benchmark import io.circe.syntax._ class Base64Writing extends Base64Benchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj, jsonBase64Options).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson(base64E5r)).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(base64Codec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(base64Codec) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 105
Source File: ArrayOfIntsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfIntsReading extends ArrayOfIntsBenchmark { @Benchmark def avSystemGenCodec(): Array[Int] = JsonStringInput.read[Array[Int]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Int] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Int]].value @Benchmark def circe(): Array[Int] = decode[Array[Int]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Int] = dslJsonDecode[Array[Int]](jsonBytes) @Benchmark def jacksonScala(): Array[Int] = jacksonMapper.readValue[Array[Int]](jsonBytes) @Benchmark def jsoniterScala(): Array[Int] = readFromArray[Array[Int]](jsonBytes) @Benchmark def playJson(): Array[Int] = Json.parse(jsonBytes).as[Array[Int]] @Benchmark def sprayJson(): Array[Int] = JsonParser(jsonBytes).convertTo[Array[Int]] @Benchmark def uPickle(): Array[Int] = read[Array[Int]](jsonBytes) @Benchmark def weePickle(): Array[Int] = FromJson(jsonBytes).transform(ToScala[Array[Int]]) }
Example 106
Source File: ArrayOfLocalDatesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.LocalDate import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLocalDatesReading extends ArrayOfLocalDatesBenchmark { @Benchmark def avSystemGenCodec(): Array[LocalDate] = JsonStringInput.read[Array[LocalDate]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[LocalDate] = io.bullet.borer.Json.decode(jsonBytes).to[Array[LocalDate]].value @Benchmark def circe(): Array[LocalDate] = decode[Array[LocalDate]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[LocalDate] = dslJsonDecode[Array[LocalDate]](jsonBytes) @Benchmark def jacksonScala(): Array[LocalDate] = jacksonMapper.readValue[Array[LocalDate]](jsonBytes) @Benchmark def jsoniterScala(): Array[LocalDate] = readFromArray[Array[LocalDate]](jsonBytes) @Benchmark def playJson(): Array[LocalDate] = Json.parse(jsonBytes).as[Array[LocalDate]] @Benchmark def sprayJson(): Array[LocalDate] = JsonParser(jsonBytes).convertTo[Array[LocalDate]] @Benchmark def uPickle(): Array[LocalDate] = read[Array[LocalDate]](jsonBytes) @Benchmark def weePickle(): Array[LocalDate] = FromJson(jsonBytes).transform(ToScala[Array[LocalDate]]) }
Example 107
Source File: ArrayOfZonedDateTimesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZonedDateTimesWriting extends ArrayOfZonedDateTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 108
Source File: MutableMapOfIntsToBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json class MutableMapOfIntsToBooleansWriting extends MutableMapOfIntsToBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) }
Example 109
Source File: ArrayOfInstantsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Instant import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfInstantsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Instant] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val n = Math.abs(i * 1498724053) Instant.ofEpochSecond(n, i % 4 match { case 0 => 0 case 1 => ((n % 1000) | 0x1) * 1000000 case 2 => ((n % 1000000) | 0x1) * 1000 case 3 => (n | 0x1) % 1000000000 }) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 110
Source File: StringOfEscapedCharsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfEscapedCharsWriting extends StringOfEscapedCharsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj, JsonOptions(asciiOutput = true)).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = escapingPrinter.print(obj.asJson).getBytes @Benchmark def jacksonScala(): Array[Byte] = jacksonEscapeNonAsciiMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj, escapingConfig)(stringCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length, escapingConfig)(stringCodec) @Benchmark def playJson(): Array[Byte] = Json.asciiStringify(Json.toJson(obj)).getBytes @Benchmark def uPickle(): Array[Byte] = write(obj, escapeUnicode = true).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToEscapedNonAsciiJson.bytes) }
Example 111
Source File: AnyValsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.FlatSprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class AnyValsWriting extends AnyValsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 112
Source File: BitSetReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.immutable.BitSet class BitSetReading extends BitSetBenchmark { @Benchmark def avSystemGenCodec(): BitSet = JsonStringInput.read[BitSet](new String(jsonBytes, UTF_8)) @Benchmark def circe(): BitSet = decode[BitSet](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jsoniterScala(): BitSet = readFromArray[BitSet](jsonBytes) @Benchmark def playJson(): BitSet = Json.parse(jsonBytes).as[BitSet](bitSetFormat) }
Example 113
Source File: MutableMapOfIntsToBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.mutable class MutableMapOfIntsToBooleansReading extends MutableMapOfIntsToBooleansBenchmark { @Benchmark def avSystemGenCodec(): mutable.Map[Int, Boolean] = JsonStringInput.read[mutable.Map[Int, Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def circe(): mutable.Map[Int, Boolean] = decode[mutable.Map[Int, Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): mutable.Map[Int, Boolean] = dslJsonDecode[mutable.Map[Int, Boolean]](jsonBytes) @Benchmark def jacksonScala(): mutable.Map[Int, Boolean] = jacksonMapper.readValue[mutable.Map[Int, Boolean]](jsonBytes) @Benchmark def jsoniterScala(): mutable.Map[Int, Boolean] = readFromArray[mutable.Map[Int, Boolean]](jsonBytes) @Benchmark def playJson(): mutable.Map[Int, Boolean] = Json.parse(jsonBytes).as[mutable.Map[Int, Boolean]] }
Example 114
Source File: ArrayOfFloatsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.rallyhealth.weejson.v1.jackson.FromJson //import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfFloatsReading extends ArrayOfFloatsBenchmark { @Benchmark def avSystemGenCodec(): Array[Float] = JsonStringInput.read[Array[Float]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Float] = io.bullet.borer.Json.decode(jsonBytes).withConfig(decodingConfig).to[Array[Float]].value @Benchmark def circe(): Array[Float] = decode[Array[Float]](new String(jsonBytes, UTF_8)).fold(throw _, identity) }
Example 115
Source File: ArrayOfBigDecimalsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.rallyhealth.weejson.v1.jackson.ToJson //import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfBigDecimalsWriting extends ArrayOfBigDecimalsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 116
Source File: ListOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ListOfBooleansReading extends ListOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): List[Boolean] = JsonStringInput.read[List[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): List[Boolean] = io.bullet.borer.Json.decode(jsonBytes).to[List[Boolean]].value @Benchmark def circe(): List[Boolean] = decode[List[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): List[Boolean] = dslJsonDecode[List[Boolean]](jsonBytes) @Benchmark def jacksonScala(): List[Boolean] = jacksonMapper.readValue[List[Boolean]](jsonBytes) @Benchmark def jsoniterScala(): List[Boolean] = readFromArray[List[Boolean]](jsonBytes) @Benchmark def playJson(): List[Boolean] = Json.parse(jsonBytes).as[List[Boolean]] @Benchmark def sprayJson(): List[Boolean] = JsonParser(jsonBytes).convertTo[List[Boolean]] @Benchmark def uPickle(): List[Boolean] = read[List[Boolean]](jsonBytes) @Benchmark def weePickle(): List[Boolean] = FromJson(jsonBytes).transform(ToScala[List[Boolean]]) }
Example 117
Source File: ArrayBufferOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ import scala.collection.mutable class ArrayBufferOfBooleansReading extends ArrayBufferOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): mutable.ArrayBuffer[Boolean] = JsonStringInput.read[mutable.ArrayBuffer[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): mutable.ArrayBuffer[Boolean] = io.bullet.borer.Json.decode(jsonBytes).to[mutable.ArrayBuffer[Boolean]].value @Benchmark def circe(): mutable.ArrayBuffer[Boolean] = decode[mutable.ArrayBuffer[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): mutable.ArrayBuffer[Boolean] = dslJsonDecode[mutable.ArrayBuffer[Boolean]](jsonBytes) @Benchmark def jacksonScala(): mutable.ArrayBuffer[Boolean] = jacksonMapper.readValue[mutable.ArrayBuffer[Boolean]](jsonBytes) @Benchmark def jsoniterScala(): mutable.ArrayBuffer[Boolean] = readFromArray[mutable.ArrayBuffer[Boolean]](jsonBytes) @Benchmark def playJson(): mutable.ArrayBuffer[Boolean] = Json.parse(jsonBytes).as[mutable.ArrayBuffer[Boolean]] @Benchmark def sprayJson(): mutable.ArrayBuffer[Boolean] = JsonParser(jsonBytes).convertTo[mutable.ArrayBuffer[Boolean]] @Benchmark def uPickle(): mutable.ArrayBuffer[Boolean] = read[mutable.ArrayBuffer[Boolean]](jsonBytes) @Benchmark def weePickle(): mutable.ArrayBuffer[Boolean] = FromJson(jsonBytes).transform(ToScala[mutable.ArrayBuffer[Boolean]]) }
Example 118
Source File: StringOfNonAsciiCharsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfNonAsciiCharsReading extends StringOfNonAsciiCharsBenchmark { @Benchmark def avSystemGenCodec(): String = JsonStringInput.read[String](new String(jsonBytes, UTF_8)) @Benchmark def borer(): String = io.bullet.borer.Json.decode(jsonBytes).to[String].value @Benchmark def circe(): String = decode[String](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): String = dslJsonDecode[String](jsonBytes)(stringDecoder) @Benchmark def jacksonScala(): String = jacksonMapper.readValue[String](jsonBytes) @Benchmark def jsoniterScala(): String = readFromArray[String](jsonBytes, tooLongStringConfig)(stringCodec) @Benchmark def playJson(): String = Json.parse(jsonBytes).as[String] @Benchmark def sprayJson(): String = spray.json.JsonParser(jsonBytes).convertTo[String] @Benchmark def uPickle(): String = read[String](jsonBytes) @Benchmark def weePickle(): String = FromJson(jsonBytes).transform(ToScala[String]) }
Example 119
Source File: StringOfAsciiCharsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfAsciiCharsWriting extends StringOfAsciiCharsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj)(stringEncoder) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(stringCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(stringCodec) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = { import spray.json._ obj.toJson.compactPrint.getBytes(UTF_8) } @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 120
Source File: ArrayOfJavaEnumsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfJavaEnumsReading extends ArrayOfJavaEnumsBenchmark { @Benchmark def avSystemGenCodec(): Array[Suit] = JsonStringInput.read[Array[Suit]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Suit] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Suit]].value @Benchmark def circe(): Array[Suit] = decode[Array[Suit]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Suit] = dslJsonDecode[Array[Suit]](jsonBytes) @Benchmark def jacksonScala(): Array[Suit] = jacksonMapper.readValue[Array[Suit]](jsonBytes) @Benchmark def jsoniterScala(): Array[Suit] = readFromArray[Array[Suit]](jsonBytes) @Benchmark def playJson(): Array[Suit] = Json.parse(jsonBytes).as[Array[Suit]] @Benchmark def sprayJson(): Array[Suit] = JsonParser(jsonBytes).convertTo[Array[Suit]] @Benchmark def uPickle(): Array[Suit] = read[Array[Suit]](jsonBytes) @Benchmark def weePickle(): Array[Suit] = FromJson(jsonBytes).transform(ToScala[Array[Suit]]) }
Example 121
Source File: MutableSetOfIntsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ import scala.collection.mutable class MutableSetOfIntsReading extends MutableSetOfIntsBenchmark { @Benchmark def avSystemGenCodec(): mutable.Set[Int] = JsonStringInput.read[mutable.Set[Int]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): mutable.Set[Int] = io.bullet.borer.Json.decode(jsonBytes).to[mutable.Set[Int]].value @Benchmark def circe(): mutable.Set[Int] = decode[mutable.Set[Int]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): mutable.Set[Int] = dslJsonDecode[mutable.Set[Int]](jsonBytes) @Benchmark def jacksonScala(): mutable.Set[Int] = jacksonMapper.readValue[mutable.Set[Int]](jsonBytes) @Benchmark def jsoniterScala(): mutable.Set[Int] = readFromArray[mutable.Set[Int]](jsonBytes) @Benchmark def playJson(): mutable.Set[Int] = Json.parse(jsonBytes).as[mutable.Set[Int]] @Benchmark def uPickle(): mutable.Set[Int] = read[mutable.Set[Int]](jsonBytes) @Benchmark def weePickle(): mutable.Set[Int] = FromJson(jsonBytes).transform(ToScala[mutable.Set[Int]]) }
Example 122
Source File: ArrayOfDurationsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Duration import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfDurationsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Duration] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val x = Math.abs((i * 6971258582664805397L) / Math.pow(10, i % 19).toLong) val y = Math.abs(i * Math.pow(10, i % 10)).toInt Duration.ofSeconds(x, y) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 123
Source File: ArrayOfPeriodsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfPeriodsWriting extends ArrayOfPeriodsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 124
Source File: GoogleMapsAPIWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class GoogleMapsAPIWriting extends GoogleMapsAPIBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 125
Source File: ArrayOfMonthDaysBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.MonthDay import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfMonthDaysBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[MonthDay] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => MonthDay.of((i % 12) + 1, (i % 29) + 1)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 126
Source File: ArrayOfOffsetDateTimesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time._ import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfOffsetDateTimesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[OffsetDateTime] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val n = Math.abs(i * 1498724053) OffsetDateTime.of(LocalDateTime.of(LocalDate.ofEpochDay(i), LocalTime.ofNanoOfDay(((n % 86000) | 0x1) * 1000000000L + (i % 4 match { case 0 => 0 case 1 => ((n % 1000) | 0x1) * 1000000 case 2 => ((n % 1000000) | 0x1) * 1000 case 3 => (n | 0x1) % 1000000000 }))), ZoneOffset.ofHours(i % 17)) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 127
Source File: OpenRTBWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringOutput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala //import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json //import spray.json._ class OpenRTBWriting extends OpenRTBBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 128
Source File: ArrayOfUUIDsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.util.UUID import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfUUIDsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[UUID] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => new UUID(i * 6971258582664805397L, i * 6971258582664805397L)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 129
Source File: BigDecimalWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.rallyhealth.weejson.v1.jackson.ToJson //import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import spray.json._ class BigDecimalWriting extends BigDecimalBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(bigDecimalCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(bigDecimalCodec) }
Example 130
Source File: ArrayOfEnumsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SuitEnum.SuitEnum import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfEnumsReading extends ArrayOfEnumsBenchmark { @Benchmark def avSystemGenCodec(): Array[SuitEnum] = JsonStringInput.read[Array[SuitEnum]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[SuitEnum] = io.bullet.borer.Json.decode(jsonBytes).to[Array[SuitEnum]].value @Benchmark def circe(): Array[SuitEnum] = decode[Array[SuitEnum]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[SuitEnum] = jacksonMapper.readValue[Array[SuitEnum]](jsonBytes) @Benchmark def jsoniterScala(): Array[SuitEnum] = readFromArray[Array[SuitEnum]](jsonBytes) @Benchmark def playJson(): Array[SuitEnum] = Json.parse(jsonBytes).as[Array[SuitEnum]] @Benchmark def sprayJson(): Array[SuitEnum] = JsonParser(jsonBytes).convertTo[Array[SuitEnum]] @Benchmark def uPickle(): Array[SuitEnum] = read[Array[SuitEnum]](jsonBytes) @Benchmark def weePickle(): Array[SuitEnum] = FromJson(jsonBytes).transform(ToScala[Array[SuitEnum]]) }
Example 131
Source File: ArrayOfEnumADTsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfEnumADTsReading extends ArrayOfEnumADTsBenchmark { @Benchmark def avSystemGenCodec(): Array[SuitADT] = JsonStringInput.read[Array[SuitADT]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[SuitADT] = io.bullet.borer.Json.decode(jsonBytes).to[Array[SuitADT]].value @Benchmark def circe(): Array[SuitADT] = decode[Array[SuitADT]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[SuitADT] = dslJsonDecode[Array[SuitADT]](jsonBytes) @Benchmark def jacksonScala(): Array[SuitADT] = jacksonMapper.readValue[Array[SuitADT]](jsonBytes) @Benchmark def jsoniterScala(): Array[SuitADT] = readFromArray[Array[SuitADT]](jsonBytes) @Benchmark def playJson(): Array[SuitADT] = Json.parse(jsonBytes).as[Array[SuitADT]] @Benchmark def sprayJson(): Array[SuitADT] = JsonParser(jsonBytes).convertTo[Array[SuitADT]] @Benchmark def uPickle(): Array[SuitADT] = read[Array[SuitADT]](jsonBytes) @Benchmark def weePickle(): Array[SuitADT] = FromJson(jsonBytes).transform(ToScala[Array[SuitADT]]) }
Example 132
Source File: SetOfIntsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ import scala.collection.immutable.Set class SetOfIntsReading extends SetOfIntsBenchmark { @Benchmark def avSystemGenCodec(): Set[Int] = JsonStringInput.read[Set[Int]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Set[Int] = io.bullet.borer.Json.decode(jsonBytes).to[Set[Int]].value @Benchmark def circe(): Set[Int] = decode[Set[Int]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Set[Int] = dslJsonDecode[Set[Int]](jsonBytes) @Benchmark def jacksonScala(): Set[Int] = jacksonMapper.readValue[Set[Int]](jsonBytes) @Benchmark def jsoniterScala(): Set[Int] = readFromArray[Set[Int]](jsonBytes) @Benchmark def playJson(): Set[Int] = Json.parse(jsonBytes).as[Set[Int]] @Benchmark def sprayJson(): Set[Int] = JsonParser(jsonBytes).convertTo[Set[Int]] @Benchmark def uPickle(): Set[Int] = read[Set[Int]](jsonBytes) @Benchmark def weePickle(): Set[Int] = FromJson(jsonBytes).transform(ToScala[Set[Int]]) }
Example 133
Source File: TwitterAPIWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark //import spray.json._ class TwitterAPIWriting extends TwitterAPIBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 134
Source File: NestedStructsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class NestedStructsWriting extends NestedStructsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson(nestedStructsJsonFormat).compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 135
Source File: ListOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ListOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: List[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) & 0x1) == 0).toList jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 136
Source File: IntReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class IntReading extends IntBenchmark { @Benchmark def avSystemGenCodec(): Int = JsonStringInput.read[Int](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Int = io.bullet.borer.Json.decode(jsonBytes).to[Int].value @Benchmark def circe(): Int = decode[Int](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Int = dslJsonDecode[Int](jsonBytes) @Benchmark def jacksonScala(): Int = jacksonMapper.readValue[Int](jsonBytes) @Benchmark def jsoniterScala(): Int = readFromArray[Int](jsonBytes)(intCodec) @Benchmark def playJson(): Int = Json.parse(jsonBytes).as[Int] @Benchmark def sprayJson(): Int = JsonParser(jsonBytes).convertTo[Int] @Benchmark def uPickle(): Int = read[Int](jsonBytes) @Benchmark def weePickle(): Int = FromJson(jsonBytes).transform(ToScala[Int]) }
Example 137
Source File: ADTWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ADTWriting extends ADTBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)(adtFormat)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson(adtBaseJsonFormat).compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 138
Source File: ArrayOfUUIDsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.util.UUID import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfUUIDsReading extends ArrayOfUUIDsBenchmark { @Benchmark def avSystemGenCodec(): Array[UUID] = JsonStringInput.read[Array[UUID]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[UUID] = io.bullet.borer.Json.decode(jsonBytes).to[Array[UUID]].value @Benchmark def circe(): Array[UUID] = decode[Array[UUID]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[UUID] = dslJsonDecode[Array[UUID]](jsonBytes) @Benchmark def jacksonScala(): Array[UUID] = jacksonMapper.readValue[Array[UUID]](jsonBytes) @Benchmark def jsoniterScala(): Array[UUID] = readFromArray[Array[UUID]](jsonBytes) @Benchmark def playJson(): Array[UUID] = Json.parse(jsonBytes).as[Array[UUID]] @Benchmark def sprayJson(): Array[UUID] = JsonParser(jsonBytes).convertTo[Array[UUID]] @Benchmark def uPickle(): Array[UUID] = read[Array[UUID]](jsonBytes) @Benchmark def weePickle(): Array[UUID] = FromJson(jsonBytes).transform(ToScala[Array[UUID]]) }
Example 139
Source File: ArrayOfZoneIdsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.ZoneId import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZoneIdsReading extends ArrayOfZoneIdsBenchmark { @Benchmark def avSystemGenCodec(): Array[ZoneId] = JsonStringInput.read[Array[ZoneId]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[ZoneId] = io.bullet.borer.Json.decode(jsonBytes).to[Array[ZoneId]].value @Benchmark def circe(): Array[ZoneId] = decode[Array[ZoneId]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[ZoneId] = jacksonMapper.readValue[Array[ZoneId]](jsonBytes) @Benchmark def jsoniterScala(): Array[ZoneId] = readFromArray[Array[ZoneId]](jsonBytes) @Benchmark def playJson(): Array[ZoneId] = Json.parse(jsonBytes).as[Array[ZoneId]] @Benchmark def sprayJson(): Array[ZoneId] = JsonParser(jsonBytes).convertTo[Array[ZoneId]] @Benchmark def uPickle(): Array[ZoneId] = read[Array[ZoneId]](jsonBytes) }
Example 140
Source File: ArrayOfZonedDateTimesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.ZonedDateTime import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZonedDateTimesReading extends ArrayOfZonedDateTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[ZonedDateTime] = JsonStringInput.read[Array[ZonedDateTime]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[ZonedDateTime] = io.bullet.borer.Json.decode(jsonBytes).to[Array[ZonedDateTime]].value @Benchmark def circe(): Array[ZonedDateTime] = decode[Array[ZonedDateTime]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[ZonedDateTime] = jacksonMapper.readValue[Array[ZonedDateTime]](jsonBytes) @Benchmark def jsoniterScala(): Array[ZonedDateTime] = readFromArray[Array[ZonedDateTime]](jsonBytes) @Benchmark def playJson(): Array[ZonedDateTime] = Json.parse(jsonBytes).as[Array[ZonedDateTime]] @Benchmark def sprayJson(): Array[ZonedDateTime] = JsonParser(jsonBytes).convertTo[Array[ZonedDateTime]] @Benchmark def uPickle(): Array[ZonedDateTime] = read[Array[ZonedDateTime]](jsonBytes) @Benchmark def weePickle(): Array[ZonedDateTime] = FromJson(jsonBytes).transform(ToScala[Array[ZonedDateTime]]) }
Example 141
Source File: ArrayOfMonthDaysReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.MonthDay import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfMonthDaysReading extends ArrayOfMonthDaysBenchmark { @Benchmark def avSystemGenCodec(): Array[MonthDay] = JsonStringInput.read[Array[MonthDay]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[MonthDay] = io.bullet.borer.Json.decode(jsonBytes).to[Array[MonthDay]].value @Benchmark def circe(): Array[MonthDay] = decode[Array[MonthDay]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[MonthDay] = jacksonMapper.readValue[Array[MonthDay]](jsonBytes) @Benchmark def jsoniterScala(): Array[MonthDay] = readFromArray[Array[MonthDay]](jsonBytes) @Benchmark def playJson(): Array[MonthDay] = Json.parse(jsonBytes).as[Array[MonthDay]] @Benchmark def uPickle(): Array[MonthDay] = read[Array[MonthDay]](jsonBytes) @Benchmark def sprayJson(): Array[MonthDay] = JsonParser(jsonBytes).convertTo[Array[MonthDay]] }
Example 142
Source File: Base64Benchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.util.Base64 import org.openjdk.jmh.annotations.{Param, Setup} abstract class Base64Benchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Byte] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(_.toByte).toArray jsonString = "\"" + Base64.getEncoder.encodeToString(obj) + "\"" jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 143
Source File: StringOfAsciiCharsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.github.plokhotnyuk.jsoniter_scala.core._ import org.openjdk.jmh.annotations.{Param, Setup} abstract class StringOfAsciiCharsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: String = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = { val cs = new Array[Char](size) var i = 0 var j = 1 while (i < cs.length) { cs(i) = { var ch: Char = 0 while ({ ch = ((j * 1498724053) % 128).toChar j += 1 !JsonWriter.isNonEscapedAscii(ch) }) () ch } i += 1 } new String(cs) } jsonString = "\"" + obj + "\"" jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 144
Source File: ArrayOfOffsetTimesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfOffsetTimesWriting extends ArrayOfOffsetTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 145
Source File: MutableLongMapOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.mutable abstract class MutableLongMapOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: mutable.LongMap[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = mutable.LongMap((1 to size).map { i => ((i * 6971258582664805397L) / Math.pow(10, i % 19).toLong, ((i * 1498724053) & 0x1) == 0) }:_*) jsonString = obj.map(e => "\"" + e._1 + "\":" + e._2).mkString("{", ",", "}") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 146
Source File: MutableSetOfIntsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.mutable abstract class MutableSetOfIntsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: mutable.Set[Int] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = mutable.Set((1 to size).map(i => ((i * 1498724053) / Math.pow(10, i % 10)).toInt):_*) jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 147
Source File: TwitterAPIReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.TwitterAPI._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import scala.collection.immutable.Seq class TwitterAPIReading extends TwitterAPIBenchmark { @Benchmark def avSystemGenCodec(): Seq[Tweet] = JsonStringInput.read[Seq[Tweet]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Seq[Tweet] = io.bullet.borer.Json.decode(jsonBytes).to[Seq[Tweet]].value @Benchmark def circe(): Seq[Tweet] = decode[Seq[Tweet]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Seq[Tweet] = dslJsonDecode[Seq[Tweet]](jsonBytes) @Benchmark def jacksonScala(): Seq[Tweet] = jacksonMapper.readValue[Seq[Tweet]](jsonBytes) @Benchmark def jsoniterScala(): Seq[Tweet] = readFromArray[Seq[Tweet]](jsonBytes) @Benchmark def playJson(): Seq[Tweet] = Json.parse(jsonBytes).as[Seq[Tweet]] @Benchmark def sprayJson(): Seq[Tweet] = JsonParser(jsonBytes).convertTo[Seq[Tweet]] @Benchmark def uPickle(): Seq[Tweet] = read[Seq[Tweet]](jsonBytes) @Benchmark def weePickle(): Seq[Tweet] = FromJson(jsonBytes).transform(ToScala[Seq[Tweet]]) }
Example 148
Source File: MutableLongMapOfBooleansReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import scala.collection.mutable class MutableLongMapOfBooleansReading extends MutableLongMapOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): mutable.LongMap[Boolean] = JsonStringInput.read[mutable.LongMap[Boolean]](new String(jsonBytes, UTF_8)) @Benchmark def circe(): mutable.LongMap[Boolean] = decode[mutable.LongMap[Boolean]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jsoniterScala(): mutable.LongMap[Boolean] = readFromArray[mutable.LongMap[Boolean]](jsonBytes) @Benchmark def playJson(): mutable.LongMap[Boolean] = Json.parse(jsonBytes).as[mutable.LongMap[Boolean]] }
Example 149
Source File: ArrayOfZoneOffsetsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfZoneOffsetsWriting extends ArrayOfZoneOffsetsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 150
Source File: ArrayOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) & 0x1) == 0).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 151
Source File: ArrayOfEnumsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfEnumsWriting extends ArrayOfEnumsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 152
Source File: BigIntWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ //import com.rallyhealth.weejson.v1.jackson.ToJson //import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json import spray.json._ class BigIntWriting extends BigIntBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj)(bigIntgEncoder) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(bigIntCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(bigIntCodec) }
Example 153
Source File: SetOfIntsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.immutable.Set abstract class SetOfIntsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Set[Int] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) / Math.pow(10, i % 10)).toInt).toSet jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 154
Source File: StringOfEscapedCharsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfEscapedCharsReading extends StringOfEscapedCharsBenchmark { @Benchmark def avSystemGenCodec(): String = JsonStringInput.read[String](new String(jsonBytes, UTF_8)) @Benchmark def borer(): String = io.bullet.borer.Json.decode(jsonBytes).to[String].value @Benchmark def circe(): String = decode[String](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): String = dslJsonDecode[String](jsonBytes)(stringDecoder) @Benchmark def jacksonScala(): String = jacksonEscapeNonAsciiMapper.readValue[String](jsonBytes) @Benchmark def jsoniterScala(): String = readFromArray[String](jsonBytes, tooLongStringConfig)(stringCodec) @Benchmark def playJson(): String = Json.parse(jsonBytes).as[String] @Benchmark def sprayJson(): String = spray.json.JsonParser(jsonBytes).convertTo[String] @Benchmark def uPickle(): String = read[String](jsonBytes) @Benchmark def weePickle(): String = FromJson(jsonBytes).transform(ToScala[String]) }
Example 155
Source File: GitHubActionsAPIReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser.decode import org.openjdk.jmh.annotations.Benchmark import spray.json.JsonParser class GitHubActionsAPIReading extends GitHubActionsAPIBenchmark { @Benchmark def avSystemGenCodec(): GitHubActionsAPI.Response = JsonStringInput.read[GitHubActionsAPI.Response](new String(jsonBytes, UTF_8)) @Benchmark def borer(): GitHubActionsAPI.Response = io.bullet.borer.Json.decode(jsonBytes).to[GitHubActionsAPI.Response].value @Benchmark def circe(): GitHubActionsAPI.Response = decode[GitHubActionsAPI.Response](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): GitHubActionsAPI.Response = jacksonMapper.readValue[GitHubActionsAPI.Response](jsonBytes) @Benchmark def jsoniterScala(): GitHubActionsAPI.Response = readFromArray[GitHubActionsAPI.Response](jsonBytes) @Benchmark def sprayJson(): GitHubActionsAPI.Response = JsonParser(jsonBytes).convertTo[GitHubActionsAPI.Response] @Benchmark def weePickle(): GitHubActionsAPI.Response = FromJson(jsonBytes).transform(ToScala[GitHubActionsAPI.Response]) }
Example 156
Source File: GoogleMapsAPIReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.GoogleMapsAPI._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class GoogleMapsAPIReading extends GoogleMapsAPIBenchmark { @Benchmark def avSystemGenCodec(): DistanceMatrix = JsonStringInput.read[DistanceMatrix](new String(jsonBytes1, UTF_8)) @Benchmark def borer(): DistanceMatrix = io.bullet.borer.Json.decode(jsonBytes1).to[DistanceMatrix].value @Benchmark def circe(): DistanceMatrix = decode[DistanceMatrix](new String(jsonBytes1, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): DistanceMatrix = dslJsonDecode[DistanceMatrix](jsonBytes1) @Benchmark def jacksonScala(): DistanceMatrix = jacksonMapper.readValue[DistanceMatrix](jsonBytes1) @Benchmark def jsoniterScala(): DistanceMatrix = readFromArray[DistanceMatrix](jsonBytes1) @Benchmark def playJson(): DistanceMatrix = Json.parse(jsonBytes1).as[DistanceMatrix] @Benchmark def sprayJson(): DistanceMatrix = JsonParser(jsonBytes1).convertTo[DistanceMatrix] @Benchmark def uPickle(): DistanceMatrix = read[DistanceMatrix](jsonBytes1) @Benchmark def weePickle(): DistanceMatrix = FromJson(jsonBytes1).transform(ToScala[DistanceMatrix]) }
Example 157
Source File: VectorOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class VectorOfBooleansWriting extends VectorOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 158
Source File: ArrayOfEnumADTsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfEnumADTsWriting extends ArrayOfEnumADTsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 159
Source File: ArrayOfYearMonthsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfYearMonthsWriting extends ArrayOfYearMonthsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) }
Example 160
Source File: ArrayOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfBooleansWriting extends ArrayOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 161
Source File: ArrayOfBigIntsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfBigIntsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[BigInt] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => BigInt(Array.fill((i & 0xF) + 1)(i.toByte))).toArray // up to 128-bit numbers jsonString = obj.map(x => new java.math.BigDecimal(x.bigInteger).toPlainString).mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 162
Source File: GitHubActionsAPIWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringOutput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import spray.json._ class GitHubActionsAPIWriting extends GitHubActionsAPIBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 163
Source File: VectorOfBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class VectorOfBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Vector[Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) & 0x1) == 0).toVector jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 164
Source File: ArrayOfUUIDsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfUUIDsWriting extends ArrayOfUUIDsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 165
Source File: GitHubActionsAPIBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core._ abstract class GitHubActionsAPIBenchmark extends CommonParams { var jsonString: String = """{ | "total_count": 3, | "artifacts": [ | { | "id": 11, | "node_id": "MDg6QXJ0aWZhY3QxMQ==", | "name": "Rails v1", | "size_in_bytes": 556, | "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11", | "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip", | "expired": "false", | "created_at": "2020-01-10T14:59:20Z", | "expires_at": "2020-01-21T14:59:20Z" | }, | { | "id": 12, | "node_id": "MDg6QXJ0aWZhY3QxMa==", | "name": "Rails v2", | "size_in_bytes": 561, | "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12", | "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12/zip", | "expired": "false", | "created_at": "2020-01-10T14:59:21Z", | "expires_at": "2020-01-21T14:59:21Z" | }, | { | "id": 13, | "node_id": "MDg6QXJ0aWZhY3QxMw==", | "name": "Rails v3", | "size_in_bytes": 453, | "url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13", | "archive_download_url": "https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip", | "expired": "false", | "created_at": "2020-01-10T14:59:22Z", | "expires_at": "2020-01-21T14:59:22Z" | } | ] |}""".stripMargin var compactJsonString1: String = """{"total_count":3,"artifacts":[{"id":11,"node_id":"MDg6QXJ0aWZhY3QxMQ==","name":"Rails v1","size_in_bytes":556,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11","archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip","expired":"false","created_at":"2020-01-10T14:59:20Z","expires_at":"2020-01-21T14:59:20Z"},{"id":12,"node_id":"MDg6QXJ0aWZhY3QxMa==","name":"Rails v2","size_in_bytes":561,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12","archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12/zip","expired":"false","created_at":"2020-01-10T14:59:21Z","expires_at":"2020-01-21T14:59:21Z"},{"id":13,"node_id":"MDg6QXJ0aWZhY3QxMw==","name":"Rails v3","size_in_bytes":453,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13","archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip","expired":"false","created_at":"2020-01-10T14:59:22Z","expires_at":"2020-01-21T14:59:22Z"}]}""" var compactJsonString2: String = """{"artifacts":[{"archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11/zip","created_at":"2020-01-10T14:59:20Z","expired":"false","expires_at":"2020-01-21T14:59:20Z","id":11,"name":"Rails v1","node_id":"MDg6QXJ0aWZhY3QxMQ==","size_in_bytes":556,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/11"},{"archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12/zip","created_at":"2020-01-10T14:59:21Z","expired":"false","expires_at":"2020-01-21T14:59:21Z","id":12,"name":"Rails v2","node_id":"MDg6QXJ0aWZhY3QxMa==","size_in_bytes":561,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/12"},{"archive_download_url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13/zip","created_at":"2020-01-10T14:59:22Z","expired":"false","expires_at":"2020-01-21T14:59:22Z","id":13,"name":"Rails v3","node_id":"MDg6QXJ0aWZhY3QxMw==","size_in_bytes":453,"url":"https://api.github.com/repos/octo-org/octo-docs/actions/artifacts/13"}],"total_count":3}""" var jsonBytes: Array[Byte] = jsonString.getBytes(UTF_8) var compactJsonBytes1: Array[Byte] = compactJsonString1.getBytes(UTF_8) var compactJsonBytes2: Array[Byte] = compactJsonString2.getBytes(UTF_8) var obj: GitHubActionsAPI.Response = readFromArray[GitHubActionsAPI.Response](jsonBytes) var preallocatedBuf: Array[Byte] = new Array(compactJsonBytes1.length + 100) }
Example 166
Source File: ArrayOfDoublesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json //import spray.json._ class ArrayOfDoublesWriting extends ArrayOfDoublesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 167
Source File: ArrayOfLocalTimesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.LocalTime import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLocalTimesReading extends ArrayOfLocalTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[LocalTime] = JsonStringInput.read[Array[LocalTime]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[LocalTime] = io.bullet.borer.Json.decode(jsonBytes).to[Array[LocalTime]].value @Benchmark def circe(): Array[LocalTime] = decode[Array[LocalTime]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[LocalTime] = dslJsonDecode[Array[LocalTime]](jsonBytes) @Benchmark def jacksonScala(): Array[LocalTime] = jacksonMapper.readValue[Array[LocalTime]](jsonBytes) @Benchmark def jsoniterScala(): Array[LocalTime] = readFromArray[Array[LocalTime]](jsonBytes) @Benchmark def playJson(): Array[LocalTime] = Json.parse(jsonBytes).as[Array[LocalTime]] @Benchmark def sprayJson(): Array[LocalTime] = JsonParser(jsonBytes).convertTo[Array[LocalTime]] @Benchmark def uPickle(): Array[LocalTime] = read[Array[LocalTime]](jsonBytes) @Benchmark def weePickle(): Array[LocalTime] = FromJson(jsonBytes).transform(ToScala[Array[LocalTime]]) }
Example 168
Source File: OpenRTBReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringInput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.OpenRTB.BidRequest //import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala //import play.api.libs.json.Json //import spray.json.JsonParser import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark class OpenRTBReading extends OpenRTBBenchmark { @Benchmark def avSystemGenCodec(): BidRequest = JsonStringInput.read[BidRequest](new String(jsonBytes, UTF_8)) @Benchmark def borer(): BidRequest = io.bullet.borer.Json.decode(jsonBytes).to[BidRequest].value @Benchmark def circe(): BidRequest = decode[BidRequest](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): BidRequest = jacksonMapper.readValue[BidRequest](jsonBytes) @Benchmark def jsoniterScala(): BidRequest = readFromArray[BidRequest](jsonBytes) @Benchmark def uPickle(): BidRequest = read[BidRequest](jsonBytes) @Benchmark def weePickle(): BidRequest = FromJson(jsonBytes).transform(ToScala[BidRequest]) }
Example 169
Source File: ArrayOfOffsetDateTimesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.OffsetDateTime import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfOffsetDateTimesReading extends ArrayOfOffsetDateTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[OffsetDateTime] = JsonStringInput.read[Array[OffsetDateTime]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[OffsetDateTime] = io.bullet.borer.Json.decode(jsonBytes).to[Array[OffsetDateTime]].value @Benchmark def circe(): Array[OffsetDateTime] = decode[Array[OffsetDateTime]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[OffsetDateTime] = dslJsonDecode[Array[OffsetDateTime]](jsonBytes) @Benchmark def jacksonScala(): Array[OffsetDateTime] = jacksonMapper.readValue[Array[OffsetDateTime]](jsonBytes) @Benchmark def jsoniterScala(): Array[OffsetDateTime] = readFromArray[Array[OffsetDateTime]](jsonBytes) @Benchmark def playJson(): Array[OffsetDateTime] = Json.parse(jsonBytes).as[Array[OffsetDateTime]] @Benchmark def sprayJson(): Array[OffsetDateTime] = JsonParser(jsonBytes).convertTo[Array[OffsetDateTime]] @Benchmark def uPickle(): Array[OffsetDateTime] = read[Array[OffsetDateTime]](jsonBytes) @Benchmark def weePickle(): Array[OffsetDateTime] = FromJson(jsonBytes).transform(ToScala[Array[OffsetDateTime]]) }
Example 170
Source File: ArrayOfPeriodsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Period import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfPeriodsReading extends ArrayOfPeriodsBenchmark { @Benchmark def avSystemGenCodec(): Array[Period] = JsonStringInput.read[Array[Period]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Period] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Period]].value @Benchmark def circe(): Array[Period] = decode[Array[Period]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Period] = jacksonMapper.readValue[Array[Period]](jsonBytes) @Benchmark def jsoniterScala(): Array[Period] = readFromArray[Array[Period]](jsonBytes) @Benchmark def playJson(): Array[Period] = Json.parse(jsonBytes).as[Array[Period]] @Benchmark def sprayJson(): Array[Period] = JsonParser(jsonBytes).convertTo[Array[Period]] @Benchmark def uPickle(): Array[Period] = read[Array[Period]](jsonBytes) }
Example 171
Source File: BigIntReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json import spray.json._ class BigIntReading extends BigIntBenchmark { @Benchmark def avSystemGenCodec(): BigInt = JsonStringInput.read[BigInt](new String(jsonBytes, UTF_8)) @Benchmark def borer(): BigInt = io.bullet.borer.Json.decode(jsonBytes).withConfig(decodingConfig).to[BigInt].value @Benchmark def circe(): BigInt = decode[BigInt](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): BigInt = dslJsonDecode[BigInt](jsonBytes) @Benchmark def jacksonScala(): BigInt = jacksonMapper.readValue[BigInt](jsonBytes) @Benchmark def jsoniterScala(): BigInt = readFromArray[BigInt](jsonBytes)(bigIntCodec) @Benchmark def sprayJson(): BigInt = JsonParser(jsonBytes, jsonParserSettings).convertTo[BigInt] @Benchmark def uPickle(): BigInt = read[BigInt](jsonBytes) @Benchmark def weePickle(): BigInt = FromJson(jsonBytes).transform(ToScala[BigInt]) }
Example 172
Source File: ArrayOfLocalTimesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLocalTimesWriting extends ArrayOfLocalTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 173
Source File: ExtractFieldsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.HashCodeCollider._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.{Benchmark, Param, Setup} import play.api.libs.json.Json import spray.json._ class ExtractFieldsReading extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: ExtractFields = ExtractFields("s", 1) var jsonString: String = _ var jsonBytes: Array[Byte] = _ @Setup def setup(): Unit = { val value = """{"number":0.0,"boolean":false,"string":null}""" jsonString = zeroHashCodeStrings.map(s => writeToString(s)(JsoniterScalaCodecs.stringCodec)).take(size) .mkString("""{"s":"s",""", s""":$value,""", s""":$value,"i":1}""") jsonBytes = jsonString.getBytes(UTF_8) } @Benchmark def avSystemGenCodec(): ExtractFields = JsonStringInput.read[ExtractFields](new String(jsonBytes, UTF_8)) @Benchmark def borer(): ExtractFields = io.bullet.borer.Json.decode(jsonBytes).to[ExtractFields].value @Benchmark def circe(): ExtractFields = decode[ExtractFields](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): ExtractFields = jacksonMapper.readValue[ExtractFields](jsonBytes) @Benchmark def jsoniterScala(): ExtractFields = readFromArray[ExtractFields](jsonBytes) @Benchmark def playJson(): ExtractFields = Json.parse(jsonBytes).as[ExtractFields] @Benchmark def sprayJson(): ExtractFields = JsonParser(jsonBytes).convertTo[ExtractFields] @Benchmark def uPickle(): ExtractFields = read[ExtractFields](jsonBytes) @Benchmark def weePickle(): ExtractFields = FromJson(jsonBytes).transform(ToScala[ExtractFields]) }
Example 174
Source File: ArrayOfYearsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Year import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfYearsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Year] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => Year.of(i % 1000 + 2000)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 175
Source File: ArrayOfInstantsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfInstantsWriting extends ArrayOfInstantsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 176
Source File: GoogleMapsAPIPrettyPrinting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class GoogleMapsAPIPrettyPrinting extends GoogleMapsAPIBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj, JsonOptions.Pretty).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = prettyPrinter.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonPrettyMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj, prettyConfig) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length, prettyConfig) @Benchmark def playJson(): Array[Byte] = prettyPrintBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = CustomPrettyPrinter(obj.toJson).getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj, 2).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToPrettyJson.bytes) }
Example 177
Source File: ArrayOfCharsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfCharsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Char] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => (((i * 1498724053) % 10) + 48).toChar).toArray jsonString = obj.map(_.toString).mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 178
Source File: ArrayOfInstantsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Instant import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfInstantsReading extends ArrayOfInstantsBenchmark { @Benchmark def avSystemGenCodec(): Array[Instant] = JsonStringInput.read[Array[Instant]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Instant] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Instant]].value @Benchmark def circe(): Array[Instant] = decode[Array[Instant]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Instant] = jacksonMapper.readValue[Array[Instant]](jsonBytes) @Benchmark def jsoniterScala(): Array[Instant] = readFromArray[Array[Instant]](jsonBytes) @Benchmark def playJson(): Array[Instant] = Json.parse(jsonBytes).as[Array[Instant]] @Benchmark def sprayJson(): Array[Instant] = JsonParser(jsonBytes).convertTo[Array[Instant]] @Benchmark def uPickle(): Array[Instant] = read[Array[Instant]](jsonBytes) @Benchmark def weePickle(): Array[Instant] = FromJson(jsonBytes).transform(ToScala[Array[Instant]]) }
Example 179
Source File: NestedStructsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class NestedStructsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 128 var obj: NestedStructs = _ var jsonBytes: Array[Byte] = _ var jsonString: String = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).foldLeft(NestedStructs(None))((n, _) => NestedStructs(Some(n))) jsonString = "{" + "\"n\":{" * size + "}" * size + "}" jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 180
Source File: MutableLongMapOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json class MutableLongMapOfBooleansWriting extends MutableLongMapOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) }
Example 181
Source File: IntWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class IntWriting extends IntBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(intCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(intCodec) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 182
Source File: GeoJSONReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.GeoJSON._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class GeoJSONReading extends GeoJSONBenchmark { @Benchmark def avSystemGenCodec(): GeoJSON = JsonStringInput.read[GeoJSON](new String(jsonBytes, UTF_8)) @Benchmark def borer(): GeoJSON = io.bullet.borer.Json.decode(jsonBytes).to[GeoJSON].value @Benchmark def circe(): GeoJSON = decode[GeoJSON](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): GeoJSON = jacksonMapper.readValue[GeoJSON](jsonBytes) @Benchmark def jsoniterScala(): GeoJSON = readFromArray[GeoJSON](jsonBytes) @Benchmark def playJson(): GeoJSON = Json.parse(jsonBytes).as[GeoJSON](geoJSONFormat) @Benchmark def sprayJson(): GeoJSON = JsonParser(jsonBytes).convertTo[GeoJSON](geoJSONJsonFormat) @Benchmark def uPickle(): GeoJSON = read[GeoJSON](jsonBytes) @Benchmark def weePickle(): GeoJSON = FromJson(jsonBytes).transform(ToScala[GeoJSON]) }
Example 183
Source File: ArrayOfJavaEnumsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfJavaEnumsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Suit] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => (i * 1498724053) & 0x3 match { case 0 => Suit.Hearts case 1 => Suit.Spades case 2 => Suit.Diamonds case 3 => Suit.Clubs } }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 184
Source File: ArrayOfLongsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLongsWriting extends ArrayOfLongsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 185
Source File: PrimitivesWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class PrimitivesWriting extends PrimitivesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 186
Source File: StringOfNonAsciiCharsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import upickle.default._ class StringOfNonAsciiCharsWriting extends StringOfNonAsciiCharsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj)(stringEncoder) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj)(stringCodec) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length)(stringCodec) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = { import spray.json._ obj.toJson.compactPrint.getBytes(UTF_8) } @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 187
Source File: ArrayOfPeriodsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.Period import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfPeriodsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Period] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val x = ((i * 1498724053) / Math.pow(10, i % 10)).toInt Period.of(x, x, x) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 188
Source File: ArrayOfBytesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfBytesReading extends ArrayOfBytesBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringInput.read[Array[Byte]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Byte]](byteArrayDec).value @Benchmark def circe(): Array[Byte] = decode[Array[Byte]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): Array[Byte] = jacksonByteArrayMapper.readValue[Array[Byte]](jsonBytes) @Benchmark def jsoniterScala(): Array[Byte] = readFromArray[Array[Byte]](jsonBytes) @Benchmark def playJson(): Array[Byte] = Json.parse(jsonBytes).as[Array[Byte]] @Benchmark def sprayJson(): Array[Byte] = JsonParser(jsonBytes).convertTo[Array[Byte]] @Benchmark def uPickle(): Array[Byte] = read[Array[Byte]](jsonBytes) @Benchmark def weePickle(): Array[Byte] = FromJson(jsonBytes).transform(ToScala[Array[Byte]]) }
Example 189
Source File: MutableMapOfIntsToBooleansBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} import scala.collection.mutable abstract class MutableMapOfIntsToBooleansBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: mutable.Map[Int, Boolean] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = mutable.Map((1 to size).map { i => (((i * 1498724053) / Math.pow(10, i % 10)).toInt, ((i * 1498724053) & 0x1) == 0) }:_*) jsonString = obj.map(e => "\"" + e._1 + "\":" + e._2).mkString("{", ",", "}") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 190
Source File: ArrayOfLocalDateTimesBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.{LocalDate, LocalDateTime, LocalTime} import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfLocalDateTimesBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[LocalDateTime] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map { i => val n = Math.abs(i * 1498724053) LocalDateTime.of(LocalDate.ofEpochDay(i), LocalTime.ofNanoOfDay(((n % 86000) | 0x1) * 1000000000L + (i % 4 match { case 0 => 0 case 1 => ((n % 1000) | 0x1) * 1000000 case 2 => ((n % 1000000) | 0x1) * 1000 case 3 => (n | 0x1) % 1000000000 }))) }.toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 191
Source File: Base64Reading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json.JsonStringInput import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.core.readFromArray import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser.decode import org.openjdk.jmh.annotations.Benchmark class Base64Reading extends Base64Benchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringInput.read[Array[Byte]](new String(jsonBytes, UTF_8), jsonBase64Options) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Byte]].value @Benchmark def circe(): Array[Byte] = decode[Array[Byte]](new String(jsonBytes, UTF_8))(base64D5r).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonDecode[Array[Byte]](jsonBytes) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.readValue[Array[Byte]](jsonBytes) @Benchmark def jsoniterScala(): Array[Byte] = readFromArray[Array[Byte]](jsonBytes, tooLongStringConfig)(base64Codec) @Benchmark def weePickle(): Array[Byte] = FromJson(jsonBytes).transform(ToScala[Array[Byte]]) }
Example 192
Source File: ArrayOfShortsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfShortsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[Short] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => ((i * 1498724053) / Math.pow(10, (i % 5) + 5)).toShort).toArray jsonString = obj.mkString("[", ",", "]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 193
Source File: StringOfEscapedCharsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.lang.Character._ import java.nio.charset.StandardCharsets.UTF_8 import com.fasterxml.jackson.core.JsonGenerator import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.ScalaObjectMapper import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import org.openjdk.jmh.annotations.{Param, Setup} class StringOfEscapedCharsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: String = _ var jsonString: String = _ var jsonString2: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = { val cs = new Array[Char](size) var i = 0 var j = 1 while (i < cs.length) { cs(i) = { var ch: Char = 0 while ({ ch = (j * 1498724053).toChar j += 1 ch < 128 || isSurrogate(ch) }) () ch } i += 1 } new String(cs) } jsonString = "\"" + obj.map(ch => f"\\u$ch%04x").mkString + "\"" jsonString2 = "\"" + obj.map(ch => f"\\u$ch%04X").mkString + "\"" jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 194
Source File: ArrayOfLongsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLongsReading extends ArrayOfLongsBenchmark { @Benchmark def avSystemGenCodec(): Array[Long] = JsonStringInput.read[Array[Long]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[Long] = io.bullet.borer.Json.decode(jsonBytes).to[Array[Long]].value @Benchmark def circe(): Array[Long] = decode[Array[Long]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[Long] = dslJsonDecode[Array[Long]](jsonBytes) @Benchmark def jacksonScala(): Array[Long] = jacksonMapper.readValue[Array[Long]](jsonBytes) @Benchmark def jsoniterScala(): Array[Long] = readFromArray[Array[Long]](jsonBytes) @Benchmark def playJson(): Array[Long] = Json.parse(jsonBytes).as[Array[Long]] @Benchmark def sprayJson(): Array[Long] = JsonParser(jsonBytes).convertTo[Array[Long]] @Benchmark def uPickle(): Array[Long] = read[Array[Long]](jsonBytes) @Benchmark def weePickle(): Array[Long] = FromJson(jsonBytes).transform(ToScala[Array[Long]]) }
Example 195
Source File: ArrayOfShortsWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.ToJson import com.rallyhealth.weepickle.v1.WeePickle.FromScala import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ import upickle.default._ class ArrayOfShortsWriting extends ArrayOfShortsBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def borer(): Array[Byte] = io.bullet.borer.Json.encode(obj).toByteArray @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def dslJsonScala(): Array[Byte] = dslJsonEncode(obj) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) @Benchmark def sprayJson(): Array[Byte] = obj.toJson.compactPrint.getBytes(UTF_8) @Benchmark def uPickle(): Array[Byte] = write(obj).getBytes(UTF_8) @Benchmark def weePickle(): Array[Byte] = FromScala(obj).transform(ToJson.bytes) }
Example 196
Source File: AnyValsReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.FlatSprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.WeePickleFromTos._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class AnyValsReading extends AnyValsBenchmark { @Benchmark def avSystemGenCodec(): AnyVals = JsonStringInput.read[AnyVals](new String(jsonBytes, UTF_8)) @Benchmark def borer(): AnyVals = io.bullet.borer.Json.decode(jsonBytes).to[AnyVals].value @Benchmark def circe(): AnyVals = decode[AnyVals](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def jacksonScala(): AnyVals = jacksonMapper.readValue[AnyVals](jsonBytes) @Benchmark def jsoniterScala(): AnyVals = readFromArray[AnyVals](jsonBytes) @Benchmark def playJson(): AnyVals = Json.parse(jsonBytes).as[AnyVals] @Benchmark def sprayJson(): AnyVals = JsonParser(jsonBytes).convertTo[AnyVals] @Benchmark def uPickle(): AnyVals = read[AnyVals](jsonBytes) @Benchmark def weePickle(): AnyVals = FromJson(jsonBytes).transform(ToScala[AnyVals]) }
Example 197
Source File: BigDecimalReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark //import play.api.libs.json.Json import spray.json._ class BigDecimalReading extends BigDecimalBenchmark { @Benchmark def avSystemGenCodec(): BigDecimal = JsonStringInput.read[BigDecimal](new String(jsonBytes, UTF_8), jsonOptions) @Benchmark def borer(): BigDecimal = io.bullet.borer.Json.decode(jsonBytes).withConfig(decodingConfig).to[BigDecimal].value @Benchmark def circe(): BigDecimal = decode[BigDecimal](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): BigDecimal = dslJsonDecode[BigDecimal](jsonBytes) @Benchmark def jacksonScala(): BigDecimal = jacksonMapper.readValue[BigDecimal](jsonBytes) @Benchmark def jsoniterScala(): BigDecimal = readFromArray[BigDecimal](jsonBytes)(bigDecimalCodec) @Benchmark def sprayJson(): BigDecimal = JsonParser(jsonBytes, jsonParserSettings).convertTo[BigDecimal] @Benchmark def uPickle(): BigDecimal = read[BigDecimal](jsonBytes) @Benchmark def weePickle(): BigDecimal = FromJson(jsonBytes).transform(ToScala[BigDecimal]) }
Example 198
Source File: ArrayOfYearMonthsBenchmark.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.YearMonth import org.openjdk.jmh.annotations.{Param, Setup} abstract class ArrayOfYearMonthsBenchmark extends CommonParams { @Param(Array("1", "10", "100", "1000", "10000", "100000", "1000000")) var size: Int = 1000 var obj: Array[YearMonth] = _ var jsonString: String = _ var jsonBytes: Array[Byte] = _ var preallocatedBuf: Array[Byte] = _ @Setup def setup(): Unit = { obj = (1 to size).map(i => YearMonth.of(i % 1000 + 2000, (i % 12) + 1)).toArray jsonString = obj.mkString("[\"", "\",\"", "\"]") jsonBytes = jsonString.getBytes(UTF_8) preallocatedBuf = new Array[Byte](jsonBytes.length + 100) } }
Example 199
Source File: ArrayOfLocalDateTimesReading.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import java.time.LocalDateTime import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.BorerJsonEncodersDecoders._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.SprayFormats._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.UPickleReaderWriters._ import com.github.plokhotnyuk.jsoniter_scala.core._ import com.rallyhealth.weejson.v1.jackson.FromJson import com.rallyhealth.weepickle.v1.WeePickle.ToScala import io.circe.parser._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json import spray.json._ class ArrayOfLocalDateTimesReading extends ArrayOfLocalDateTimesBenchmark { @Benchmark def avSystemGenCodec(): Array[LocalDateTime] = JsonStringInput.read[Array[LocalDateTime]](new String(jsonBytes, UTF_8)) @Benchmark def borer(): Array[LocalDateTime] = io.bullet.borer.Json.decode(jsonBytes).to[Array[LocalDateTime]].value @Benchmark def circe(): Array[LocalDateTime] = decode[Array[LocalDateTime]](new String(jsonBytes, UTF_8)).fold(throw _, identity) @Benchmark def dslJsonScala(): Array[LocalDateTime] = dslJsonDecode[Array[LocalDateTime]](jsonBytes) @Benchmark def jacksonScala(): Array[LocalDateTime] = jacksonMapper.readValue[Array[LocalDateTime]](jsonBytes) @Benchmark def jsoniterScala(): Array[LocalDateTime] = readFromArray[Array[LocalDateTime]](jsonBytes) @Benchmark def playJson(): Array[LocalDateTime] = Json.parse(jsonBytes).as[Array[LocalDateTime]] @Benchmark def sprayJson(): Array[LocalDateTime] = JsonParser(jsonBytes).convertTo[Array[LocalDateTime]] @Benchmark def uPickle(): Array[LocalDateTime] = read[Array[LocalDateTime]](jsonBytes) @Benchmark def weePickle(): Array[LocalDateTime] = FromJson(jsonBytes).transform(ToScala[Array[LocalDateTime]]) }
Example 200
Source File: IntMapOfBooleansWriting.scala From jsoniter-scala with MIT License | 5 votes |
package com.github.plokhotnyuk.jsoniter_scala.benchmark import java.nio.charset.StandardCharsets.UTF_8 import com.avsystem.commons.serialization.json._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.AVSystemCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.CirceEncodersDecoders._ //import com.github.plokhotnyuk.jsoniter_scala.benchmark.DslPlatformJson._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JacksonSerDesers._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.JsoniterScalaCodecs._ import com.github.plokhotnyuk.jsoniter_scala.benchmark.PlayJsonFormats._ import com.github.plokhotnyuk.jsoniter_scala.core._ import io.circe.syntax._ import org.openjdk.jmh.annotations.Benchmark import play.api.libs.json.Json class IntMapOfBooleansWriting extends IntMapOfBooleansBenchmark { @Benchmark def avSystemGenCodec(): Array[Byte] = JsonStringOutput.write(obj).getBytes(UTF_8) @Benchmark def circe(): Array[Byte] = printer.print(obj.asJson).getBytes(UTF_8) @Benchmark def jacksonScala(): Array[Byte] = jacksonMapper.writeValueAsBytes(obj) @Benchmark def jsoniterScala(): Array[Byte] = writeToArray(obj) @Benchmark def jsoniterScalaPrealloc(): Int = writeToSubArray(obj, preallocatedBuf, 0, preallocatedBuf.length) @Benchmark def playJson(): Array[Byte] = Json.toBytes(Json.toJson(obj)) }