AbcAeffchen / Sephpa

PHP class to create SEPA xml files for credit transfer and direct debit
GNU Lesser General Public License v3.0
71 stars 31 forks source link

performance #7

Closed ronnievisser closed 7 years ago

ronnievisser commented 7 years ago

I there anything known about this lib in case of huge PAIN files? let's say with 100k transactions in it?

AbcAeffchen commented 7 years ago

I have not tested Sephpa with that many transactions. I recommend to turn off all checks and check your data on input time. This way you should only need thee time to generate the file it self. This time mainly depends on the speed of the SimpleXML library I use to generate XML files.

But I have to say that I have not tuned Sephpa to be as fast as possible. And I also not tested how fast it is and I also did no speed comparison to other SEPA libraries. But if you would make such a test, I would love to see the results and maybe we can improve the speed a little.

ronnievisser commented 7 years ago

Hi,

It's not mainly about speed but also about memory usage. Anything known about that?

Best regards, Soccerama Support

On 1 dec. 2016 16:45 +0100, Alex Schickedanz notifications@github.com, wrote:

I have not tested Sephpa with that many transactions. I recommend to turn off all checks and check your data on input time. This way you should only need thee time to generate the file it self. This time mainly depends on the speed of the SimpleXML library I use to generate XML files.

But I have to say that I have not tuned Sephpa to be as fast as possible. And I also not tested how fast it is and I also did no speed comparison to other SEPA libraries. But if you would make such a test, I would love to see the results and maybe we can improve the speed a little.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub (https://github.com/AbcAeffchen/Sephpa/issues/7#issuecomment-264205701), or mute the thread (https://github.com/notifications/unsubscribe-auth/AB13v5Q1hsXlUiiUmGmqSr1_eDt8WVc_ks5rDumwgaJpZM4LBgqQ).

AbcAeffchen commented 7 years ago

I just did a short test:

Using PHP 7 on a Athlon Phenom II X4 965 it took about 7.2 seconds and about 43.15 MB RAM to generate a file with one collection and 100.000 transactions while checkAndSanitize is turned off. The generated file has about 36 MB. If you turn checkAndSanitize on, it takes about 53 seconds and 100 MB RAM.

This is just a short test. This time gets bigger if you have to fetch your data from a database or read a file. For my test I just added 100.000 times the same transaction.

ronnievisser commented 7 years ago

Thanks, will do some tests myself tomorrow

On 1 December 2016 at 20:29, Alex Schickedanz notifications@github.com wrote:

I just did a short test:

Using PHP 7 on a Athlon Phenom II X4 965 it took about 7.2 seconds and about 43.15 MB RAM to generate a file with one collection and 100.000 transactions while checkAndSanitize is turned off. The generated file has about 36 MB. If you turn checkAndSanitize on, it takes about 53 seconds and 100 MB RAM.

This is just a short test. This time gets bigger if you have to fetch your data from a database or read a file. For my test I just added 100.000 times the same transaction.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/AbcAeffchen/Sephpa/issues/7#issuecomment-264269519, or mute the thread https://github.com/notifications/unsubscribe-auth/AB13v0oKCnW3zF8MMaLciUav33zVveNNks5rDyApgaJpZM4LBgqQ .

AbcAeffchen commented 7 years ago

Did you had time to do some tests? I added my test script to the the development branch Sephpa/tests/SephpaTimeMemoryTest.php