Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

rfc

Former Member
0 Kudos

Ok... One for the best of the best, who seem only to reside here...

I've got an RFC which calls SAP's PRICING function module. I have to get this thing running with sub-second timing. When all possible buffering is done, it actually runs in under 100 milliseconds, which is great. The first time it runs, with no buffering at all, it takes a couple of seconds, which is not so good.

Now, my concerns are:

1) Will an RFC re-load the programs and data every time it is called, by virtue of it being called externally? If so, what can be done to encourage buffering of programs and/or data?

2) For testing purposes, is it possible to globally (within a program) turn off data buffering and/or program buffering? It would be nice to be able to pinpoint the costs in the program, so that we know what to target for performance improvement. Plus, utilizing the same test data repeatedly seems to give unrealistic average performance measurements...

1 REPLY 1

Former Member
0 Kudos

Hi,

NOT SURE BUT HOPE THIS HELPS,

One more thought about the buffering...In our system the condition tables are fully buffered and some of them are very large. As a result, occasionally the first call took a remarkable amount of time because the records have to be (re) loaded into the table buffer. Since we run several clients we could solve the issue partly by using generic buffer instead of fully buffered table - also there is a (basis) method to keep a table in the buffer. It is difficult to say if your tests yield a realistic picture of what you might face in production but switching off table buffering will result in very bad performance which is not realisitc either. Condition technique has its benefits in buffering.

Also keep in mind that this kind of buffering take place on (each)application server and they could be differerent than your test environment (memory configuration, etc.)

One last thought - if you face such a "initial load" time for the first call you could check if you simply run a report which fills the data again into buffer (simply by accessing the tables in question)..

cheers,

chaitanya.