You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In agreement with the previous comment, when I serialise a simple class
publicclassPerson{publicstringName{get;set;}}
The initial call to MessagePackSerializer.Get takes several hundred milliseconds (somewhere between 350ms to 400ms) and the first call to MessagePackSerializer.Unpack() takes a further 30ms~ or so.
Subsequent calls to both MessagePackSerializer.Pack() and MessagePackSerializer.Unpack() are fast.
The delay only seems to happen when the program first runs. I assume this behaviour is by-design, but is there a way to work around, or at least reduce the "slow start" behaviour?
Tested on MSgPack.Cli v1.0.0 targeting .NET Framework 4.5.
0ms <- application starts, executes MessagePackSerializer.Get<Person>()
341ms <- MessagePackSerializer.Get() returns after 341ms
374ms Bob <- First call to MessagePackSerializer.Pack() has a slight delay
374ms Bob <- Subsequent calls to MessagePackSerializer.Pack() complete quickly.
374ms Bob
374ms Bob
374ms Bob
Is there anything I can do to reduce this initial time calls to MessagePackSerializer.Get() take?
The text was updated successfully, but these errors were encountered:
marcbarry
changed the title
first call to MessagePackSerializer.Get takes several hundred milliseconds
First call to MessagePackSerializer.Get takes several hundred milliseconds
Feb 6, 2019
In fact, serializer generation path is not optmized well. The overhead should be come from runtime code generation. I recognize this should be filed in backlog, mainly memory usage optimization to reduce gc.
As @marcbarry said, SerializerGenerator API may help you.
In agreement with the previous comment, when I serialise a simple class
The initial call to
MessagePackSerializer.Get
takes several hundred milliseconds (somewhere between 350ms to 400ms) and the first call toMessagePackSerializer.Unpack()
takes a further 30ms~ or so.Subsequent calls to both
MessagePackSerializer.Pack()
andMessagePackSerializer.Unpack()
are fast.The delay only seems to happen when the program first runs. I assume this behaviour is by-design, but is there a way to work around, or at least reduce the "slow start" behaviour?
Tested on
MSgPack.Cli v1.0.0
targeting .NET Framework 4.5.Code to reproduce:
Example output:
Is there anything I can do to reduce this initial time calls to
MessagePackSerializer.Get()
take?See also #191
Thanks!
The text was updated successfully, but these errors were encountered: