Tips to improve XFA forms performance | Community
Skip to main content
New Participant
July 27, 2023
Solved

Tips to improve XFA forms performance

  • July 27, 2023
  • 2 replies
  • 1370 views

In our business case we are rendering the XFA based form using AEM Forms 6.5 OSGI Output service. The rendering is taking around 2 minutes to complete. 

The size of XDP is around 8 Mb. It contains a repeatable sub-form which works fine and do the conversion in 20-25 sec if the iteration is around 5. For more iterations it takes longer time.

What are option by which we can optimize performance?

How can we improve server side performance with Output service?

What are caching options with Output service?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Pulkit_Jain_

@abhinavdi 

Recently we have observed some performance gains for some customers w.r.t XMLform service conversions when the XMLFormService.maxreusecount is reduced (by 50% or lesser) and increasing the XMLFormService.poolmax based on the number of cores on the server.

 

Also, you may want to establish whether template resolution or data merge is taking the maximum time. So running the standalone XML form command[0] and enabling performance debug logging[1] will help.

[0]

xmlformcmd -pa formname=xxxxxxx.xdp xdcFile=xxxxxx.xdc dataFile=xxxxx.xml renderType="pdf" resultFile=output.pdf -log output.log -time time.log

[1] - https://experienceleague.adobe.com/docs/experience-manager-learn/forms/troubleshooting/how-to-enable-performance-logging-to-debug-forms-and-output-service.html?lang=en

2 replies

Pulkit_Jain_
Pulkit_Jain_Accepted solution
Employee
July 28, 2023

@abhinavdi 

Recently we have observed some performance gains for some customers w.r.t XMLform service conversions when the XMLFormService.maxreusecount is reduced (by 50% or lesser) and increasing the XMLFormService.poolmax based on the number of cores on the server.

 

Also, you may want to establish whether template resolution or data merge is taking the maximum time. So running the standalone XML form command[0] and enabling performance debug logging[1] will help.

[0]

xmlformcmd -pa formname=xxxxxxx.xdp xdcFile=xxxxxx.xdc dataFile=xxxxx.xml renderType="pdf" resultFile=output.pdf -log output.log -time time.log

[1] - https://experienceleague.adobe.com/docs/experience-manager-learn/forms/troubleshooting/how-to-enable-performance-logging-to-debug-forms-and-output-service.html?lang=en

AbhinavDiAuthor
New Participant
July 28, 2023

Thanks @pulkit_jain_ for the response. We will test it and confirm.

AbhinavDiAuthor
New Participant
July 28, 2023

Hi @pulkit_jain_ 

I followed the debug with performance and got below result for the form specific:

<perflog> <Total-generatePDFOutput-URLInput time='172392ms' isTagged='false' acrotbatVersion='Acrobat_11' isLinearized='false' contentRoot='crx:///content/dam/formsanddocuments' userXci='false' form='TestXdpForm.xdp' > <resolveTemplate time='4ms' > </resolveTemplate> <NonInteractivePDFRenderService-render time='172387ms' > <paExecuteTotal time='172385ms' > <PAExecute-CorbaCall time='172385ms' > </PAExecute-CorbaCall> </paExecuteTotal> </NonInteractivePDFRenderService-render> </Total-generatePDFOutput-URLInput> </perflog>

Can you please suggest more options on how can we optimize the 

"<NonInteractivePDFRenderService-render time='172387ms' >" this seems to be time taken by Output service "generatePDFOutput" method.

Can you suggest more debug packages to capture more details?

 

Also can you please confirm the path for the executable 

xmlformcmd

from where we can execute the command?

Vijay_Katoch
New Participant
July 28, 2023

Check the script in the forms if you have one. If the script code is put in the individual fields, then put it at the subform level. 

 

 

AbhinavDiAuthor
New Participant
July 28, 2023

Hi @vijay_katoch Thanks for the response, we have tried it and identified the places where the individual script nodes are there and we have optimized it. Our requirement is to reduce the conversion time between 30-50 seconds. 

After trying suggested option conversion time is still more then a minute. 

Can you suggest other options?