https://gitlab.synchro.net/sbbs/sbbs/-/commit/914790f5931e27c30f94e204 Modified Files:byte
src/sbbs3/nopen.c
Log Message:
Improve file copy (fcopy()) performance by more than an order of magnitude.Using a 256KB read buffer for copying files (rather than one
at a time).Apparently calling fread() is not the same as a bunch of calls to fgetc()after all. Or maybe it was the many calls to fputc() being replaced withfwrite(). Or maybe it was both. Anyway, decreased the timeto
copy a 1GBfile from and to a Samba share over a Gb Ethernet network from13
minutesto less than a minute. This matters when sbbs is backing up your data/mailbase and the files are big. The mail base is locked while being backed upand the longer it takes to back up, the longer the mail base is locked andno mail can be received, read or sent during that time.
Hi Rob,Ethernet
On 2020-09-09 02:22:17, you wrote to Git commit to sbbs/master:
https://gitlab.synchro.net/sbbs/sbbs/-/commit/914790f5931e27c30f94e204 Modified Files:
src/sbbs3/nopen.c
Log Message:
Improve file copy (fcopy()) performance by more than an order of magnitude.Using a 256KB read buffer for copying files (rather than one byte
at a time).Apparently calling fread() is not the same as a bunch of calls to fgetc()after all. Or maybe it was the many calls to fputc() being replaced withfwrite(). Or maybe it was both. Anyway, decreased the time to copy a 1GBfile from and to a Samba share over a Gb
yournetwork from 13
minutesto less than a minute. This matters when sbbs is backing up
data/mailbase and the files are big. The mail base is locked while being backed upand the longer it takes to back up, the longer the mail base is locked andno mail can be received, read or sent during that time.
Maybe this can even be improved upon:
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.h https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.c
codeMaybe this can even be improved upon:
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.h
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.c
Um... thanks? I was getting 400+Mbps, so I'm pretty sastified with that, and it's portable code. But I may experiment with your Linux-specific
at some point.
Hi Digital,
On 2020-09-09 09:09:30, you wrote to me:
Maybe this can even be improved upon:
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.h
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.c
Um... thanks? I was getting 400+Mbps, so I'm pretty sastified with that, and it's portable code. But I may experiment with your Linux-specific code at some point.
And on windows just use the CopyFile() OS function...
Maybe this can even be improved upon:
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.h
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.c
Um... thanks? I was getting 400+Mbps, so I'm pretty sastified with
that, and it's portable code. But I may experiment with your
Linux-specific code at some point.
And on windows just use the CopyFile() OS function...
Now *that* was a good tip! Thanks!
Hi Digital,
On 2020-09-09 13:23:52, you wrote to me:
Maybe this can even be improved upon:
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.h
https://sourceforge.net/p/fmail/code/ci/linux/tree/copyFile.c
Um... thanks? I was getting 400+Mbps, so I'm pretty sastified with
that, and it's portable code. But I may experiment with your
Linux-specific code at some point.
And on windows just use the CopyFile() OS function...
Now *that* was a good tip! Thanks!
It's in my source code, but you have to notice it. ;-)
I'm interested if you did the speed messurement again, and if you could detect a difference? ;)
hadI'm interested if you did the speed messurement again, and if you could
detect a difference? ;)
I did and CopyFile() was both faster (reduced from 37 to 5 seconds) and
lower CPU utilization. Nice!
Hi Digital,and
On 2020-09-09 17:48:23, you wrote to me:
I'm interested if you did the speed messurement again, and if you could
detect a difference? ;)
I did and CopyFile() was both faster (reduced from 37 to 5 seconds)
had
lower CPU utilization. Nice!
That's much bigger improvement, then I would have expected! Nice indeed!
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 368 |
Nodes: | 16 (2 / 14) |
Uptime: | 52:45:09 |
Calls: | 7,887 |
Calls today: | 1 |
Files: | 12,962 |
Messages: | 5,788,722 |