-
Notifications
You must be signed in to change notification settings - Fork 0
Choose only one IOPlugin implementation #4
Comments
Based on the benchmarks below, I'd suggest to keep
To get the best of both worlds, we could use the reading implementation from |
I don't have a strong opinion. Whatever you think is a good balance of performance and maintainability works for me. Especially since according to the POM of this project, you and @imagejan are in charge here, not me. 😜 |
I wonder whether scijava-plugins-io-table/src/main/java/org/scijava/table/CommonsCSVTableIOPlugin.java Lines 102 to 103 in 6e4ba23
So we might want to stick with |
I just noticed that |
I just realized that my interpretation of the benchmark results was wrong. The CommonsCSV-based implementation is faster at reading large(ish) file. Before making any decision here, I'll take a look at the performance for smaller files (just to be on the safe side). If we decide to stick with the CommonsCSV implementation, we will have to look into migrating it to the
I can do some benchmarks for this implementation as well - for the sake of completeness. If we decide to remove it, we will have to add another dependency to |
Or! We could change the Regarding the benchmarks, I would advise not worrying too much about performance of small files. The scalability is what matters most here, in both time and space. I'll admit there is a point where (e.g. if you are looping reads of millions of tiny CSV files) horrible performance of small files could be an issue. But let's not prematurely optimize, either. |
Thanks @stelfrich and @ctrueden for improving this component! I suggest to release If there are no objections, I'll release a new version within the next few days. |
@imagejan From my perspective, we are good to release a version! 👍 |
Uh oh!
There was an error while loading. Please reload this page.
Right now, we have both
DefaultTableIOPlugin
andCommonsCSVTableIOPlugin
. The default one wins, because it has a higher priority. The commons CSV one is never used.One of these plugins should be deleted. But which one? Let's make a decision. The commons CSV implementation is substantially shorter and hence probably more maintainable. But which one is faster? Is the commons-csv dependency acceptable? Is either one more correct than the other, covering more cases? Etc.
The text was updated successfully, but these errors were encountered: