1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | pasynOctetSyncIO->read() weirdly slow performance |
From: | Marco Filho via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Tue, 29 Oct 2024 12:50:31 +0000 |
Hi all, we are having a performance issue with asyn and I am not sure if I am misusing the tool... // /* Assign that port to the asynUser */
pasynCommonSyncIO->connect(detectorPortName, 0, &pasynUserCommon, ""); pasynOctetSyncIO->connect(detectorPortName, 0, &pasynUserOctet, ""); Then create the acquisition thread: epicsThreadOpts acqTaskThreadOpts;
acqTaskThreadOpts.priority=epicsThreadPriorityMedium; acqTaskThreadOpts.stackSize=epicsThreadGetStackSize(epicsThreadStackMedium); acqTaskThreadOpts.joinable=1; status = (epicsThreadCreateOpt("acqTask", (EPICSTHREADFUNC)acqTaskC, this, &acqTaskThreadOpts) == NULL); And inside the acquisition thread: unsigned char tcp_frame[TCP_FRAME_SIZE];
status = pasynOctetSyncIO->read(pasynUserOctet, (char*)tcp_frame, (size_t)TCP_FRAME_SIZE, timeout, &nIn, &eomReason); I also tried improving the thread priority from medium to maximum, but to no avail. |