Comments (1)
Now with lazy init of sessions, Wire is mostly on par with NetSerializer for smaller/primitive messages.
Sometimes slower, sometimes faster.
Serializer.Initialize() in 26 ms
== 1 TypicalMessage x 1000000 ==
NetSerializer | MemStream Serialize | 336 | 0 0 0 | 39 |
NetSerializer | MemStream Deserialize | 404 | 22 0 0 | |
NetSerializer | NetTest | 548 | 22 0 0 | |
Wire | MemStream Serialize | 257 | 32 0 0 | 38 |
Wire | MemStream Deserialize | 262 | 57 0 0 | |
Wire | NetTest | 382 | 90 0 0 | |
== 1000 Object x 1000 ==
NetSerializer | MemStream Serialize | 34 | 0 0 0 | 1000 |
NetSerializer | MemStream Deserialize | 22 | 5 0 0 | |
NetSerializer | NetTest | 47 | 5 0 0 | |
Wire | MemStream Serialize | 70 | 22 0 0 | 1000 |
Wire | MemStream Deserialize | 50 | 30 0 0 | |
Wire | NetTest | 88 | 53 0 0 | |
== 100 LargeStruct x 30000 ==
NetSerializer | MemStream Serialize | 543 | 34 0 0 | 1859 |
NetSerializer | MemStream Deserialize | 410 | 34 0 0 | |
NetSerializer | NetTest | 743 | 68 0 0 | |
Wire | MemStream Serialize | 542 | 102 0 0 | 3500 |
Wire | MemStream Deserialize | 455 | 108 0 0 | |
Wire | NetTest | 1103 | 212 0 0 | |
== 100 LargeStruct x 30000 (direct) ==
NetSerializer | MemStream Serialize | 412 | 0 0 0 | 1759 |
NetSerializer | MemStream Deserialize | 373 | 0 0 0 | |
NetSerializer | NetTest | 609 | 0 0 0 | |
== 100 Guid x 50000 ==
NetSerializer | MemStream Serialize | 712 | 38 0 0 | 1970 |
NetSerializer | MemStream Deserialize | 439 | 38 0 0 | |
NetSerializer | NetTest | 815 | 76 0 0 | |
Wire | MemStream Serialize | 449 | 200 0 0 | 1700 |
Wire | MemStream Deserialize | 322 | 209 0 0 | |
Wire | NetTest | 741 | 411 0 0 | |
== 100 Guid x 50000 (direct) ==
NetSerializer | MemStream Serialize | 619 | 0 0 0 | 1872 |
NetSerializer | MemStream Deserialize | 489 | 0 0 0 | |
NetSerializer | NetTest | 801 | 0 0 0 | |
== 100 Int32 x 100000 ==
NetSerializer | MemStream Serialize | 689 | 57 0 0 | 461 |
NetSerializer | MemStream Deserialize | 385 | 57 0 0 | |
NetSerializer | NetTest | 730 | 114 0 0 | |
Wire | MemStream Serialize | 869 | 286 0 0 | 500 |
Wire | MemStream Deserialize | 540 | 305 0 0 | |
Wire | NetTest | 1112 | 593 0 0 | |
== 100 Int32 x 100000 (direct) ==
NetSerializer | MemStream Serialize | 519 | 0 0 0 | 361 |
NetSerializer | MemStream Deserialize | 497 | 0 0 0 | |
NetSerializer | NetTest | 639 | 0 0 0 | |
== 100 U8Message x 100000 ==
NetSerializer | MemStream Serialize | 463 | 0 0 0 | 200 |
NetSerializer | MemStream Deserialize | 971 | 57 0 0 | |
NetSerializer | NetTest | 1235 | 57 0 0 | |
Wire | MemStream Serialize | 754 | 228 0 0 | 400 |
Wire | MemStream Deserialize | 809 | 305 0 0 | |
Wire | NetTest | 1112 | 536 0 0 | |
== 100 U8Message x 100000 (direct) ==
NetSerializer | MemStream Serialize | 349 | 0 0 0 | 100 |
NetSerializer | MemStream Deserialize | 1123 | 57 0 0 | |
NetSerializer | NetTest | 1189 | 57 0 0 | |
== 100 S16Message x 100000 ==
NetSerializer | MemStream Serialize | 573 | 0 0 0 | 341 |
NetSerializer | MemStream Deserialize | 1134 | 57 0 0 | |
NetSerializer | NetTest | 1292 | 57 0 0 | |
Wire | MemStream Serialize | 879 | 228 0 0 | 500 |
Wire | MemStream Deserialize | 857 | 305 0 0 | |
Wire | NetTest | 1217 | 536 0 0 | |
== 100 S32Message x 100000 ==
NetSerializer | MemStream Serialize | 639 | 0 0 0 | 461 |
NetSerializer | MemStream Deserialize | 1216 | 57 0 0 | |
NetSerializer | NetTest | 1384 | 57 0 0 | |
Wire | MemStream Serialize | 881 | 228 0 0 | 700 |
Wire | MemStream Deserialize | 867 | 305 0 0 | |
Wire | NetTest | 1231 | 536 0 0 | |
== 100 S64Message x 100000 ==
NetSerializer | MemStream Serialize | 729 | 0 0 0 | 542 |
NetSerializer | MemStream Deserialize | 1257 | 57 0 0 | |
NetSerializer | NetTest | 1463 | 57 0 0 | |
Wire | MemStream Serialize | 980 | 228 0 0 | 1100 |
Wire | MemStream Deserialize | 956 | 305 0 0 | |
Wire | NetTest | 1354 | 536 0 0 | |
== 100 DecimalMessage x 50000 ==
NetSerializer | MemStream Serialize | 637 | 47 0 0 | 1360 |
NetSerializer | MemStream Deserialize | 922 | 38 0 0 | |
NetSerializer | NetTest | 1199 | 86 0 0 | |
Wire | MemStream Serialize | 770 | 200 0 0 | 1900 |
Wire | MemStream Deserialize | 831 | 247 0 0 | |
Wire | NetTest | 1166 | 450 0 0 | |
== 100 NullableDecimalMessage x 100000 ==
NetSerializer | MemStream Serialize | 591 | 2 0 0 | 238 |
NetSerializer | MemStream Deserialize | 1144 | 95 0 0 | |
NetSerializer | NetTest | 1250 | 98 0 0 | |
Wire | MemStream Serialize | 1317 | 234 0 0 | 448 |
Wire | MemStream Deserialize | 1249 | 348 0 0 | |
Wire | NetTest | 1486 | 585 0 0 | |
== 100 PrimitivesMessage x 10000 ==
NetSerializer | MemStream Serialize | 653 | 9 0 0 | 5286 |
NetSerializer | MemStream Deserialize | 667 | 28 0 0 | |
NetSerializer | NetTest | 871 | 38 0 0 | |
Wire | MemStream Serialize | 411 | 51 0 0 | 8300 |
Wire | MemStream Deserialize | 534 | 78 0 0 | |
Wire | NetTest | 771 | 130 0 0 | |
== 10 DictionaryMessage x 1000 ==
NetSerializer | MemStream Serialize | 1240 | 28 0 0 | 86187 |
NetSerializer | MemStream Deserialize | 1795 | 109 54 0 | |
NetSerializer | NetTest | 2134 | 133 66 0 | |
Wire | MemStream Serialize | 2702 | 186 0 0 | 156403 |
Wire | MemStream Deserialize | 2508 | 188 94 0 | |
Wire | NetTest | 3900 | 321 160 0 | |
== 100 ComplexMessage x 10000 ==
NetSerializer | MemStream Serialize | 423 | 0 0 0 | 2838 |
NetSerializer | MemStream Deserialize | 613 | 37 0 0 | |
NetSerializer | NetTest | 731 | 37 0 0 | |
Wire | MemStream Serialize | 460 | 22 0 0 | 4848 |
Wire | MemStream Deserialize | 402 | 62 0 0 | |
Wire | NetTest | 635 | 85 0 0 | |
== 100 StringMessage x 20000 ==
NetSerializer | MemStream Serialize | 452 | 0 0 0 | 4886 |
NetSerializer | MemStream Deserialize | 586 | 68 0 0 | |
NetSerializer | NetTest | 738 | 68 0 0 | |
Wire | MemStream Serialize | 459 | 79 0 0 | 4991 |
Wire | MemStream Deserialize | 441 | 151 0 0 | |
Wire | NetTest | 790 | 232 0 0 | |
== 100 StructMessage x 20000 ==
NetSerializer | MemStream Serialize | 503 | 0 0 0 | 2455 |
NetSerializer | MemStream Deserialize | 631 | 44 0 0 | |
NetSerializer | NetTest | 814 | 44 0 0 | |
Wire | MemStream Serialize | 886 | 155 0 0 | 7949 |
Wire | MemStream Deserialize | 1423 | 233 0 0 | |
Wire | NetTest | 1865 | 390 0 0 | |
== 100 BoxedPrimitivesMessage x 20000 ==
NetSerializer | MemStream Serialize | 800 | 0 0 0 | 1723 |
NetSerializer | MemStream Deserialize | 521 | 83 0 0 | |
NetSerializer | NetTest | 878 | 83 0 0 | |
Wire | MemStream Serialize | 1116 | 91 0 0 | 4700 |
Wire | MemStream Deserialize | 920 | 190 0 0 | |
Wire | NetTest | 1542 | 283 0 0 | |
from wire.
Related Issues (20)
- NVM
- Serialization of F# Map HOT 4
- No support for struct with a non-default constructor? HOT 8
- Is Serializer thread safe? HOT 2
- AmbiguousMatchException when serializing a type with multiple AddRange methods HOT 1
- Invalid code generation on fields of interface type HOT 5
- Wire performance improvements HOT 3
- CollectionTests.CanSerializeDictionaryKeysAndValuesByteChar is failing HOT 1
- Wire 0.8.2 is not compatible with 0.8.1 HOT 6
- Stack overflow when serializing/deserializing LinkedList
- OSS license for Wire HOT 2
- Support for IDictionary HOT 3
- Serialize - DeSerialize between similar types. HOT 4
- Speedup dials to compare performance with bond simple binary protocol.
- .NET Core serialization issues
- Signed Wire NuGet package
- support DataContract/DataMember/IgnoreDataMember
- Does wire do zig-zag / 7bit encoding?
- Wire.Extensions.TypeEx CoreAssemblyName ignore mscorelib/System.Private.CoreLib
- .NET Core 3 - Cannot Deserialize
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wire.