From d99bc590f2b77332a32519b6b2c3d8e179fe47fc Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 3 Feb 2013 15:18:44 +0800 Subject: [PATCH] add benchmark case --- .../benchmark/BenchmarkMain_EishayDecode.java | 51 +++++++++++++++++++ .../benchmark/BenchmarkMain_EishayEncode.java | 50 ++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayDecode.java create mode 100644 src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayEncode.java diff --git a/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayDecode.java b/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayDecode.java new file mode 100644 index 000000000..f9d1bdc39 --- /dev/null +++ b/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayDecode.java @@ -0,0 +1,51 @@ +package com.alibaba.json.test.benchmark; + +import java.lang.management.ManagementFactory; +import java.util.List; + +import com.alibaba.fastjson.JSON; +import com.alibaba.json.test.TestUtils; +import com.alibaba.json.test.benchmark.decode.EishayDecodeBytes; + +import data.media.MediaContent; + +public class BenchmarkMain_EishayDecode { + + public static void main(String[] args) throws Exception { + System.out.println(System.getProperty("java.vm.name") + " " + System.getProperty("java.runtime.version")); + List arguments = ManagementFactory.getRuntimeMXBean().getInputArguments(); + System.out.println(arguments); + + String text = EishayDecodeBytes.instance.getText(); + System.out.println(text); + + for (int i = 0; i < 10; ++i) { + perf(text); + } + } + + static long perf(String text) { + long startYGC = TestUtils.getYoungGC(); + long startYGCTime = TestUtils.getYoungGCTime(); + long startFGC = TestUtils.getFullGC(); + + long startMillis = System.currentTimeMillis(); + for (int i = 0; i < 1000 * 1000; ++i) { + decode(text); + } + long millis = System.currentTimeMillis() - startMillis; + + long ygc = TestUtils.getYoungGC() - startYGC; + long ygct = TestUtils.getYoungGCTime() - startYGCTime; + long fgc = TestUtils.getFullGC() - startFGC; + + System.out.println("decode\t" + millis + ", ygc " + ygc + ", ygct " + ygct + ", fgc " + fgc); + return millis; + } + + static void decode(String text) { + //MediaContent content = JSON.parseObject(text, MediaContent.class); + + JSON.parseObject(text); + } +} diff --git a/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayEncode.java b/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayEncode.java new file mode 100644 index 000000000..68e19c0ad --- /dev/null +++ b/src/test/java/com/alibaba/json/test/benchmark/BenchmarkMain_EishayEncode.java @@ -0,0 +1,50 @@ +package com.alibaba.json.test.benchmark; + +import java.lang.management.ManagementFactory; +import java.util.List; + +import com.alibaba.fastjson.JSON; +import com.alibaba.json.test.TestUtils; +import com.alibaba.json.test.benchmark.decode.EishayDecodeBytes; + +import data.media.MediaContent; + +public class BenchmarkMain_EishayEncode { + + public static void main(String[] args) throws Exception { + System.out.println(System.getProperty("java.vm.name") + " " + System.getProperty("java.runtime.version")); + List arguments = ManagementFactory.getRuntimeMXBean().getInputArguments(); + System.out.println(arguments); + + MediaContent content = EishayDecodeBytes.instance.getContent(); + String text = encode(content); + System.out.println(text); + + for (int i = 0; i < 10; ++i) { + perf(text); + } + } + + static long perf(Object obj) { + long startYGC = TestUtils.getYoungGC(); + long startYGCTime = TestUtils.getYoungGCTime(); + long startFGC = TestUtils.getFullGC(); + + long startMillis = System.currentTimeMillis(); + for (int i = 0; i < 1000 * 1000; ++i) { + encode(obj); + } + long millis = System.currentTimeMillis() - startMillis; + + long ygc = TestUtils.getYoungGC() - startYGC; + long ygct = TestUtils.getYoungGCTime() - startYGCTime; + long fgc = TestUtils.getFullGC() - startFGC; + + System.out.println("encode\t" + millis + ", ygc " + ygc + ", ygct " + ygct + ", fgc " + fgc); + return millis; + } + + static String encode(Object text) { + return JSON.toJSONString(text); + } +}