This is an automated email from the ASF dual-hosted git repository.

wangweipeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-fury.git


The following commit(s) were added to refs/heads/main by this push:
     new 4998e567 chore: update benchmark (#1375)
4998e567 is described below

commit 4998e5677b752d59a182f7cde0d8399762f75720
Author: 野声 <lijiacheng....@antgroup.com>
AuthorDate: Mon Feb 19 17:25:54 2024 +0800

    chore: update benchmark (#1375)
---
 javascript/benchmark/platform-buffer-draw.py |  60 ++++++++-------------------
 javascript/benchmark/platform-buffer.jpg     | Bin 55653 -> 36432 bytes
 javascript/benchmark/platform-buffer.js      |  40 ++++++------------
 3 files changed, 31 insertions(+), 69 deletions(-)

diff --git a/javascript/benchmark/platform-buffer-draw.py 
b/javascript/benchmark/platform-buffer-draw.py
index 9ff73d5b..5c9a803e 100644
--- a/javascript/benchmark/platform-buffer-draw.py
+++ b/javascript/benchmark/platform-buffer-draw.py
@@ -19,31 +19,31 @@ import matplotlib.pyplot as plt
 import sys
 
 [
-    _,
     browser_utf8_write,
     browser_write,
-    browser_write_1,
     native_write,
     browser_to_string,
     native_to_string,
-] = sys.argv[0:7]
+] = sys.argv[1:6]
 
-# 创建图形和子图
-fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(15, 5), sharey=True)
+browser_utf8_write = int(browser_utf8_write)
+browser_write = int(browser_write)
+native_write = int(native_write)
+browser_to_string = int(browser_to_string)
+native_to_string = int(native_to_string)
+
+fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5), sharey=True)
 
-# 绘制第一部分比较:browser utf8Write 和 browser write
 axs[0].bar(
-    ["browser utf8Write", "browser write"],
-    [browser_utf8_write, browser_write],
-    color=["b", "g"],
+    ["browser utf8Write", "browser write", "native write"],
+    [browser_utf8_write, browser_write, native_write],
+    color=["b", "g", "r"],
 )
-axs[0].set_title("Browser UTF8 Write vs Browser Write")
-axs[0].set_xlabel("Operation Type")
-axs[0].set_xticklabels(["browser utf8Write", "browser write"])
-axs[0].set_ylabel("Tps")
+axs[0].set_title("Write Comparison")
+axs[0].set_xticklabels(["browser utf8Write", "browser write", "native write"])
+axs[0].set_ylabel("TPS")
 
 
-# 在柱形图上添加数值标签
 for p in axs[0].patches:
     axs[0].annotate(
         format(p.get_height(), ".0f"),
@@ -54,38 +54,16 @@ for p in axs[0].patches:
         textcoords="offset points",
     )
 
-# 绘制第二部分比较:browser write 和 native write
 axs[1].bar(
-    ["browser write", "native write"], [browser_write_1, native_write], 
color=["g", "r"]
-)
-axs[1].set_title("Browser Write vs Native Write")
-axs[1].set_xlabel("Operation Type")
-axs[1].set_xticklabels(["browser write", "native write"])
-
-# 在柱形图上添加数值标签
-for p in axs[1].patches:
-    axs[1].annotate(
-        format(p.get_height(), ".0f"),
-        (p.get_x() + p.get_width() / 2.0, p.get_height()),
-        ha="center",
-        va="center",
-        xytext=(0, 9),
-        textcoords="offset points",
-    )
-
-# 绘制第三部分比较:browser toString 和 native toString
-axs[2].bar(
     ["browser toString", "native toString"],
     [browser_to_string, native_to_string],
     color=["b", "r"],
 )
-axs[2].set_title("Browser ToString vs Native ToString")
-axs[2].set_xlabel("Operation Type")
-axs[2].set_xticklabels(["browser toString", "native toString"])
+axs[1].set_title("toString Comparison")
+axs[1].set_xticklabels(["browser toString", "native toString"])
 
-# 在柱形图上添加数值标签
-for p in axs[2].patches:
-    axs[2].annotate(
+for p in axs[1].patches:
+    axs[1].annotate(
         format(p.get_height(), ".0f"),
         (p.get_x() + p.get_width() / 2.0, p.get_height()),
         ha="center",
@@ -94,9 +72,7 @@ for p in axs[2].patches:
         textcoords="offset points",
     )
 
-# 调整布局以避免重叠
 plt.tight_layout()
 
-# 显示图形
 plt.show()
 fig.savefig("./platform-buffer.jpg")
diff --git a/javascript/benchmark/platform-buffer.jpg 
b/javascript/benchmark/platform-buffer.jpg
index c6ed82fa..d13eb58c 100644
Binary files a/javascript/benchmark/platform-buffer.jpg and 
b/javascript/benchmark/platform-buffer.jpg differ
diff --git a/javascript/benchmark/platform-buffer.js 
b/javascript/benchmark/platform-buffer.js
index cacd4bd1..bf56235a 100644
--- a/javascript/benchmark/platform-buffer.js
+++ b/javascript/benchmark/platform-buffer.js
@@ -29,14 +29,14 @@ const jsonString = JSON.stringify({
 
 async function start() {
   const result = {
-    browserCompare: {},
-    browserVsNativeWrite: {},
-    browserVsNativeToString: {},
+    writeComparison: {},
+    toStringComparison: {},
   }
 
   {
     const platformBufferA = new BrowserBuffer(jsonString.length);
     const platformBufferB = new BrowserBuffer(jsonString.length);
+    const nativeBuffer = Buffer.alloc(jsonString.length);
 
     var suite = new Benchmark.Suite();
     suite
@@ -46,36 +46,17 @@ async function start() {
       .add("browser write", function () {
         platformBufferB.write(jsonString, 0, 'utf8');
       })
-      .on("complete", function (e) {
-        e.currentTarget.forEach(({ name, hz }) => {
-          result.browserCompare[name] = Math.ceil(hz);
-        });
-      })
-      .run({ async: false });
-      console.log("Write operation per second")
-      console.table(result.browserCompare);
-  }
-
-  {
-    const browserBuffer = new BrowserBuffer(jsonString.length);
-    const nativeBuffer = Buffer.alloc(jsonString.length);
-
-    var suite = new Benchmark.Suite();
-    suite
-      .add("browser write", function () {
-        browserBuffer.write(jsonString, 0, 'utf8');
-      })
       .add("native write", function () {
         nativeBuffer.write(jsonString, 0, 'utf8');
       })
       .on("complete", function (e) {
         e.currentTarget.forEach(({ name, hz }) => {
-          result.browserVsNativeWrite[name] = Math.ceil(hz);
+          result.writeComparison[name] = Math.ceil(hz);
         });
       })
       .run({ async: false });
       console.log("Write operation per second")
-      console.table(result.browserVsNativeWrite);
+      console.table(result.writeComparison);
   }
 
   {
@@ -94,17 +75,22 @@ async function start() {
       })
       .on("complete", function (e) {
         e.currentTarget.forEach(({ name, hz }) => {
-          result.browserVsNativeToString[name] = Math.ceil(hz);
+          result.toStringComparison[name] = Math.ceil(hz);
         });
       })
       .run({ async: false });
       console.log("toString operation per second")
-      console.table(result.browserVsNativeToString);
+      console.table(result.toStringComparison);
   }
 
+  const args = ['platform-buffer-draw.py', result.writeComparison['browser 
utf8Write'], result.writeComparison['browser write'], 
result.writeComparison['native write'], result.toStringComparison['browser 
toString'], result.toStringComparison['native toString']];
+
+  console.log("Running python script to draw the graph")
+  console.log("python3", ...args)
+
   spawn(
     `python3`,
-    ['platform-buffer-draw.py', result.browserCompare["browser utf8Write"], 
result.browserCompare["browser write"], result.browserVsNativeWrite["browser 
write"], result.browserVsNativeWrite["native write"], 
result.browserVsNativeToString["browser toString"], 
result.browserVsNativeToString["native toString"]],
+    ['platform-buffer-draw.py', result.writeComparison['browser utf8Write'], 
result.writeComparison['browser write'], result.writeComparison['native 
write'], result.toStringComparison['browser toString'], 
result.toStringComparison['native toString']],
     {
       cwd: __dirname,
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org
For additional commands, e-mail: commits-h...@fury.apache.org

Reply via email to