You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2020/07/23 11:04:39 UTC

[ignite] branch enum-serialization-perf created (now bc0ef24)

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

ptupitsyn pushed a change to branch enum-serialization-perf
in repository https://gitbox.apache.org/repos/asf/ignite.git.


      at bc0ef24  Add enum bench

This branch includes the following new commits:

     new bc0ef24  Add enum bench

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[ignite] 01/01: Add enum bench

Posted by pt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ptupitsyn pushed a commit to branch enum-serialization-perf
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit bc0ef24b473466ef1c21dc48315b8dc5924ddd97
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Thu Jul 23 14:04:04 2020 +0300

    Add enum bench
---
 .../Apache.Ignite.BenchmarkDotNet/EnumSerPerf.cs   | 99 ++++++++++++++++++++++
 .../Apache.Ignite.BenchmarkDotNet/Program.cs       |  2 +-
 2 files changed, 100 insertions(+), 1 deletion(-)

diff --git a/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/EnumSerPerf.cs b/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/EnumSerPerf.cs
new file mode 100644
index 0000000..6735f50
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/EnumSerPerf.cs
@@ -0,0 +1,99 @@
+namespace Apache.Ignite.BenchmarkDotNet
+{
+    using Apache.Ignite.Core;
+    using Apache.Ignite.Core.Binary;
+    using Apache.Ignite.Core.Cache;
+    using Apache.Ignite.Core.Client;
+    using global::BenchmarkDotNet.Attributes;
+
+    public class EnumSerPerf
+    {
+        /** */
+        public IIgnite Ignite { get; set; }
+        
+        public ICache<int, object> Cache { get; set; }
+
+        /// <summary>
+        /// Sets up the benchmark.
+        /// </summary>
+        [GlobalSetup]
+        public virtual void GlobalSetup()
+        {
+            Ignite = Ignition.Start(Utils.GetIgniteConfiguration());
+            Cache = Ignite.GetOrCreateCache<int, object>("c");
+        }
+
+        /// <summary>
+        /// Cleans up the benchmark.
+        /// </summary>
+        [GlobalCleanup]
+        public virtual void GlobalCleanup()
+        {
+            Ignite.Dispose();
+        }
+        
+        [Benchmark]
+        public void PutFoo()
+        {
+            Cache.Put(1, new Foo());
+        }
+        
+        [Benchmark]
+        public void PutFooWithEnum()
+        {
+            Cache.Put(1, new FooWithEnum());
+        }
+
+        private class Foo : IBinarizable
+        {
+            public string Bar { get; set; }
+            
+            public void WriteBinary(IBinaryWriter writer)
+            {
+                writer.WriteString("bar", Bar);
+            }
+
+            public void ReadBinary(IBinaryReader reader)
+            {
+                throw new System.NotImplementedException();
+            }
+        }
+        
+        private class FooWithEnum : IBinarizable
+        {
+            public string Bar { get; set; }
+            
+            public MyEnum MyEnum { get; set; }
+            
+            public void WriteBinary(IBinaryWriter writer)
+            {
+                writer.WriteString("bar", Bar);
+                writer.WriteEnum("enum", MyEnum);
+            }
+
+            public void ReadBinary(IBinaryReader reader)
+            {
+                throw new System.NotImplementedException();
+            }
+        }
+
+        private enum MyEnum
+        {
+            Undefined,
+            Stock,
+            Option,
+            Future,
+            Bond,
+            Strategy,
+            DNTP,
+            Forex,
+            ForexFW,
+            Repo,
+            CFD,
+            TAPO,
+            CDS,
+            Swap,
+            Forward
+        }
+    }
+}
\ No newline at end of file
diff --git a/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/Program.cs b/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/Program.cs
index 784b7a6..f2edf0e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/Program.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.BenchmarkDotNet/Program.cs
@@ -30,7 +30,7 @@ namespace Apache.Ignite.BenchmarkDotNet
         /// </summary>
         public static void Main()
         {
-            BenchmarkRunner.Run<ThinClientCacheGetBenchmark>();
+            BenchmarkRunner.Run<EnumSerPerf>();
         }
     }
 }