Does SQLite perform blocking flushes on every commit? Does it perform asynchronous writes? Is the file to read on the same bus as the database file? Are they on the same drive?
All good questions, but I bet it took me far less time to write the thread code I posted, than it would take the OP to ascertain the answers. And much less than it would take him to a) understand the significance of his findings; and b) construct a formula to determine whether concurrency would be beneficial or not in the light of those findings.
It would surprise me to see much more than a 15% improvement from concurrency,
Worth having if it's available. And running the benchmark would take very little time.
and it wouldn't surprise me at all to see performance decrease.
And it's only 10 or so lines of code and say half an hours effort to discard if not.
Are they on the same platter?
Do modern drives use multiple platters? In any case, it is unlikely that there is any filesystem that would allow you to control the placement of individual files at that level.
I must admit that I think there is probably more potential for performance gain in avoiding (at least) 1 of the 3x duplications inherent in the following code:
my $d = Data::Dumper->new([\@dump], ['dump']) ; $d->Purity(1)->Terse(1)->Deepcopy(1); ... ..., $d->Dump);
In reply to Re^4: Taking advantage of dual processors
by BrowserUk
in thread Taking advantage of dual processors [tag://parallel,cygwin,multi-core,fork,i/o]
by metaperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |