EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <2026 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  <2026
<== Date ==> <== Thread ==>

Subject: Re: PVXS and CA Put benchmark
From: Robby Tanner via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Bernardo Brotas Carvalho <bernardo.carvalho at tecnico.ulisboa.pt>
Date: Thu, 23 Apr 2026 07:08:44 +0000
Hi Bernardo,

If you're wanting batch "puts", does PVXS have something similar to pyepics.caput_many()...?

I don't know enough about the differences between PVXS and CA to know if the same is possible or if it can be realized in PVXS. It might not address the specific issue you are facing.

Cheers,
Rob

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Bernardo Brotas Carvalho via Tech-talk <tech-talk at aps.anl.gov>
Sent: April 22, 2026 11:30 AM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: PVXS and CA Put benchmark
 
Hi Epics tech-talkers,

While working on a prototype gateway to a WinCCOA  I ended up using PVXS C++ client library,
but I was a little surprised by the relatively low Throughput (when compared to a plain CA client), 
when making a bunch of "puts" to 1000 ai-PVs, served by a softIocPVX.

My first result, made on a 10 year old Intel PC where:

## PVXS Client
=== EPICS PVXS Put Benchmark: 1000 PVs ===
=== SUMMARY ===
  Client creation:       1.02404 ms (0.100708%)
  Put issue phase:       4.97025 ms (0.488793%)
  Wait phase:            1010.81 ms (99.4072%)
  ---------------------------------
  TOTAL TIME:            1016.84 ms
  Throughput:            983.437 puts/sec

## CA Client
=== EPICS CA Put Benchmark: 1000 PVs ===
…. 
=== SUMMARY ===
  Connect phase:         100.629 ms (95.7%)
  Put issue phase:       0.195 ms (0.2%)
  Wait phase:            4.252 ms (4.0%)
  ---------------------------------
  TOTAL TIME:            105.130 ms
  Throughput:            9512.0 puts/sec

A second test, performed on an more recent 40-core Intel(R) Xeon(R) CPU, and using PV grouping, pool, threading, etc. 
( 50 groups of ~20 PVs each), gave me ~2000 puts/sec for PVXS , but still far from CA.

My Env is:
EPICS_CA_ADDR_LIST=localhost
EPICS_CA_AUTO_ADDR_LIST=NO
EPICS_PVA_ADDR_LIST=localhost
EPICS_PVA_AUTO_ADDR_LIST=NO
EPICS_PVA_NAME_SERVERS=localhost

Am I missing something?

In case of interest, my codes made “With a Little Help From My AI Friends”, are in:

Thanks in advance

Bernardo
IPFN-IST Portugal





References:
PVXS and CA Put benchmark Bernardo Brotas Carvalho via Tech-talk

Navigate by Date:
Prev: PVXS and CA Put benchmark Bernardo Brotas Carvalho via Tech-talk
Next: BO which should switch to 1 whenever processed Majer Karel via Tech-talk
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  <2026
Navigate by Thread:
Prev: PVXS and CA Put benchmark Bernardo Brotas Carvalho via Tech-talk
Next: Re: PVXS and CA Put benchmark Michael Davidsaver via Tech-talk
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  <2026
ANJ, 23 Apr 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·