{{Quickfixn}} Message.ToString() Performance

Sergio Diego Demaestri sdemaestri at mae.com.ar
Mon Sep 28 05:38:47 PDT 2020


Hi Lanfranco,

I use the ToString in several places, for logging. to save in DB to forward to whoever subscribes to an instrument that another user has already requested.
using StringBuilder without size could be the problem as it is slower.
I have generated a code similar to the one defined in the ToString eliminating the lock and defining a size for the stringBuilder and it is faster and does not present significant conversion alterations.
It would be interesting to define these limits in the stringbuilders, perhaps they could be configurable with default values in new versions. to support more messages per second.

Regards,
Sergio

De: Quickfixn <quickfixn-bounces at lists.quickfixn.com> En nombre de Lanfranco Morini
Enviado el: Monday, September 21, 2020 04:35 PM
Para: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com>
Asunto: SPAMRe: {{Quickfixn}} Message.ToString() Performance

Hi Diego,
are writing about the line

string ss = msg.ToString();
?

Can I ask you what's the goal of this conversion?

Thanks a lot,
Lanfranco


Lanfranco Giuseppe Morini
Program Manager
Banking & Finance
APPLICATIONS

E  Lanfranco.Morini at cegeka.it<mailto:Lanfranco.Morini at cegeka.it>
T +39 02 254427 1
M +39 347 7282717

[cid:image003.png at 01D69579.58E36F90]
CEGEKA Via A. Volta 16
20093 Cologno Monzese MI, Italy
T +39 02 254 427 1
WWW.CEGEKA.IT<http://www.cegeka.it/>
[cid:image004.jpg at 01D69579.58E36F90]<https://www.linkedin.com/company/cegeka_italia>
[cid:image005.jpg at 01D69579.58E36F90]<https://twitter.com/Cegeka_IT>
[cid:image006.jpg at 01D69579.58E36F90]<https://www.facebook.com/Cegeka.Italia>
[cid:image007.jpg at 01D69579.58E36F90]<https://www.youtube.com/channel/UCyK4GfmaAT3MEJttkpfWoyQ>


From: Quickfixn <quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>> On Behalf Of Sergio Diego Demaestri
Sent: lunedì 21 settembre 2020 15:21
To: Mailing list for QuickFIX/n <quickfixn at lists.quickfixn.com<mailto:quickfixn at lists.quickfixn.com>>
Subject: {{Quickfixn}} Message.ToString() Performance

Hi,
Using this code
Int idorden = 10500;
            while (true)
            {
               string msgqueve = "8=FIXT.1.1_9=279_35=D_34=15_49=MAEFIXSORClient1_52=20200901-18:28:59.224_56=MAEFIXSORServerDesa_11=48212_15=ARS_38=1000000_40=2_44=15_54=2_55=AY24D_59=1_60=20200901-18:28:59.223_63=1_110=50000_126=20200901-18:28:59.150_432=20200901_5682=BON1_453=2_448=20949931030_447=C_452=3_448=RC2_447=C_452=1_10=089_";
                               Message msg = CreateMessageFromFIXString(msgqueve, SessionId);(function create message from string not added for space in email)
                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();

                for (int i = 1;i< 2000000;i++)
                {
                    DateTime inicio = DateTime.Now;
                    idorden++;
                    msg.SetField(new QuickFix.Fields.StringField(11, idorden.ToString()));
                    string ss = msg.ToString();
                    DateTime fin = DateTime.Now;
                    if ((fin - inicio).TotalMilliseconds > 0.5)
                        Console.WriteLine("str ="+ (fin - inicio).TotalMilliseconds);
                    //Session.SendToTarget(msg, SessionId);
                }
                stopWatch.Stop();
                TimeSpan ts = stopWatch.Elapsed;

                // Format and display the TimeSpan value.
                string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                    ts.Hours, ts.Minutes, ts.Seconds,
                    ts.Milliseconds / 10);
                Console.WriteLine("RunTime " + elapsedTime+ "yime "+DateTime.Now.Ticks);
                System.Threading.Thread.Sleep(900);
            }

I have noticed a random performance drop in the transformation of the message.
I have not been able to attribute it to the internal lock of ToString ().
Could you help me evaluate the best way to transform to string?

Regards,
Sergio Diego Demaestri
Aviso de Confidencialidad: La información contenida en este E-mail es confidencial y sólo puede ser utilizada por el destinatario a quien está dirigido. Conforme artículo 318 del Código Civil y Comercial de la Nación, la correspondencia confidencial no puede ser utilizada sin consentimiento del remitente, y los terceros no pueden valerse de la correspondencia sin asentimiento del destinatario, y del remitente si es confidencial. Si no es el destinatario autorizado de este E-mail, no puede utilizar esta información sin consentimiento del remitente y cualquier retención, difusión, distribución o copia de este mensaje es prohibida y sancionada por la ley. Toda vez que la información remitida por este medio puede ser objeto de modificación o alteración, el emisor no se responsabiliza por errores u omisiones contenidos en este mensaje o sus anexos, ni garantiza la seguridad, exactitud de lo transmitido por este medio. Si por error ha recibido este E-mail, favor reenvíelo al remitente y borre el mensaje recibido inmediatamente
Aviso de Confidencialidad: La información contenida en este E-mail es confidencial y sólo puede ser utilizada por el destinatario a quien está dirigido. Conforme artículo 318 del Código Civil y Comercial de la Nación, la correspondencia confidencial no puede ser utilizada sin consentimiento del remitente, y los terceros no pueden valerse de la correspondencia sin asentimiento del destinatario, y del remitente si es confidencial. Si no es el destinatario autorizado de este E-mail, no puede utilizar esta información sin consentimiento del remitente y cualquier retención, difusión, distribución o copia de este mensaje es prohibida y sancionada por la ley. Toda vez que la información remitida por este medio puede ser objeto de modificación o alteración, el emisor no se responsabiliza por errores u omisiones contenidos en este mensaje o sus anexos, ni garantiza la seguridad, exactitud de lo transmitido por este medio. Si por error ha recibido este E-mail, favor reenvíelo al remitente y borre el mensaje recibido inmediatamente
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 8099 bytes
Desc: image001.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0012.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 8483 bytes
Desc: image002.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0013.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.png
Type: image/png
Size: 4821 bytes
Desc: image003.png
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.jpg
Type: image/jpeg
Size: 1224 bytes
Desc: image004.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0014.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.jpg
Type: image/jpeg
Size: 1119 bytes
Desc: image005.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0015.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image006.jpg
Type: image/jpeg
Size: 1166 bytes
Desc: image006.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0016.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image007.jpg
Type: image/jpeg
Size: 1145 bytes
Desc: image007.jpg
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20200928/89755e54/attachment-0017.jpg>


More information about the Quickfixn mailing list